python 文件处理
目录
文件的打开模式
文件的操作方法
文件内光标移动
案例
操作文件的模式
模式 | 描述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
操作文件的方法:
f.read() 读取文件所有内容
f.readline() 读取行,包括换行符"\n", 光标移动到下行
f.readlines() 读取文件的所有行存放在列表中
f.flush() 刷新文件内部缓存,直接把文件内部缓存写入文件中
f.write() 将字符串写入文件
f.seek() 移动文件中光标的位置
f.close() 关闭文件
文件内光标移动:
#文件内指针的移动都是Bytes为单位的,唯一例外的是t模式下的read(n),n以字符为单位 with open('a.txt',mode='rt',encoding='utf-8') as f: data=f.read(3) # 读取3个字符 with open('a.txt',mode='rb') as f: data=f.read(3) # 读取3个Bytes # 之前文件内指针的移动都是由读/写操作而被动触发的,若想读取文件某一特定位置的数据,则则需要用f.seek方法主动控制文件内指针的移动,详细用法如下: # f.seek(指针移动的字节数,模式控制): # 模式控制: # 0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的 # 1: 该模式代表指针移动的字节数是以当前所在的位置为参照的 # 2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的 # 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用
open()
python open()用于对文件的处理,返回文件对象。
注意: 一定要关闭文件。调用close()。
语法:
f = open(file, mode='r', encoding=None)
说明:
f:文件对象
file:文件
mode:对文件操作的模式
encoding:字符编码
例子:
# 1.打开文件,得到文件句柄并且赋值给一个变量 f = open('./test.py', 'r', encoding='utf-8') # 默认打开的是r # 2.通过文件句柄来操作文件 data = f.read() # 3.关闭文件 f.close()
参考原文:https://www.runoob.com/python3/python3-file-methods.html