05-文件处理
Posted zhubincheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05-文件处理相关的知识,希望对你有一定的参考价值。
引入
1、什么是文件
文件是操作系统提供给用户/应用程序操作硬盘的一种虚拟的概念/接口
用户/应用程序(open())
操作系统(文件)
计算机硬件(硬盘)
2、为何要用文件
用户/应用程序可以通过文件将数据永久保存的硬盘中
即操作文件就是操作硬盘
用户/应用程序直接操作的是文件,对文件进行的所有的操作,都是
在向操作系统发送系统调用,然后再由操作将其转换成具体的硬盘操作
3、如何用文件:open()
控制文件读写内容的模式:t和b 强调:t和b不能单独使用,必须跟r/w/a连用 t文本(默认的模式) 1、读写都以str(unicode)为单位的 2、文本文件 3、必须指定encoding=‘utf-8‘ b二进制/bytes 控制文件读写操作的模式 r只读模式 w只写模式 a只追加写模式 +:r+、w+、a+
一、文件基本操作
1、打开文件
1.1 open()传参
# windows路径分隔符问题
# 因为分隔符“”在python中代表转义符,为确保能正确读出路径
# 我们可采取以下两种策略
例子:
open(‘C:a.txt
bcd.txt‘)
# 解决方案一:推荐
open(r‘C:a.txt
bcd.txt‘)
# 解决方案二:
open(‘C:/a.txt/nb/c/d.txt‘)
1.2 open()的返回值
f=open(r‘aaa/a.txt‘,mode=‘rt‘,encoding="utf-8") # f的值是一种变量,占用的是应用程序的内存空间
print(f) # <_io.TextIOWrapper name=‘aaa/a.txt‘ mode=‘rt‘ encoding=‘utf-8‘>
x=int(10) # f的存储于x的存储类似
打开文件,由应用程序向操作系统发起系统调用open(...),操作系统打开该文件,对应一块硬盘空间,并返回一个文件对象赋值给一个变量f
2、操作文件
读/写文件,应用程序对文件的读写请求都是在向操作系统发送
# 系统调用,然后由操作系统控制硬盘把输入读入内存、或者写入硬盘
res=f.read()
print(type(res))
print(res)
3、关闭文件
因为若不关闭文件,操作系统会一直维持文件打开状态占用内存。
若一直不关闭会有以下问题:
1、操作系统可开文件数量有限,开太多无用文件会导致现有程序无法再打开更多文件。
2、虽然有机制,一定时间内检测文件长期不活跃,则关闭,但是仍占用内存资源。
f.close() # 回收操作系统资源
print(f) # <_io.TextIOWrapper name=‘aaa/a.txt‘ mode=‘rt‘ encoding=‘utf-8‘>
f.read() # ValueError: I/O operation on closed file.
# 变量f存在,但是不能再读了
del f # 回收应用程序资源
以上是关于05-文件处理的主要内容,如果未能解决你的问题,请参考以下文章
Amazon Elastic Map Reduce:输入片段大小是不是重要
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段