文件操作
文件操作
# 方式一:
f = open(r"文件路径", "r", encoding="utf-8") # 打开文件,拿到一个文件对象f
f.read() # 读写文件
f.close() # 关闭文件,回收操作系统的资源
# 方式二(上下文管理,自动回收资源):
with open(r"文件路径", "r", encoding="utf-8") as f:
pass
文件打开模式
- r: 只读模式L(默认的) 1 当文件不存时,会报错 2 当文件存在时,文件指针指向文件的开头
- w: 只写模式 1 当文件不存时,新建一个空文档 2 当文件存在时,清空文件内容,文件指针跑到文件的开头
- a: 只追加写模式 1 当文件不存时,新建一个空文档,文件指针跑到文件的末尾 2 当文件存在时,文件指针跑到文件的末尾
控制读写文件单位的方式(必须与r,w,a连用)
- t : 文本模式(默认的),一定要指定encoding参数 优点: 操作系统会将硬盘中二进制数字解码成unicode然后返回 缺点:只针对文本文件有效
- b: 二进制模式,一定不能指定encoding参数
文件指针
f.seek(offset,whence)
- offset : 代表控制指针移动的字节数
- whence : 代表参照什么位置进行移动 whence = 0 : 参照文件开头(默认的),可以在t和b模式下使用 whence = 1 : 参照当前所在的位置,必须在b模式下用 whence = 2 : 参照文件末尾,必须在b模式下用
- 文件内指针移动,只有t模式下的read(n),n代表的字符的个数,除此以外文件内指针的移动都是以字节为单位
修改文件
-
方式一(占用内存过多,不适用于大文件):
将文件内容由硬盘全部读入内存 在内存中完成修改 将内存中修改后的结果覆盖写回硬盘
-
方式二:
以读的方式打开源文件,以写的方式打开一个临时文件 从源文件中每读一样内容修改完毕后写入临时文件,直到源文件读取完毕 删掉源文件,将临时文件重命名为源文件名