文件操作
常见的文件类型:
- txt
- csv
- json
- html
- mp4
文件操作的流程
- 打开----> open()
- 读/写—>read()/write()
- 关闭—>close()
序号 | 用途 | 方法 | 功能 |
---|---|---|---|
1 | 打开/关闭文件 | f=open(file) | 打开文件 |
f.close() | 关闭文件 | ||
2 | 读/写文件 | f.read([size]) | 从文件中读取指定字节,未指定读取所有 |
f.readline([size]) | 读取整行,包括‘\n’ | ||
f.readlines([size]) | 读取所有行,并返回列表 | ||
f.write(str) | 将字符串写入文件,并返回字符串长度 | ||
f.writelines(seq) | 向文件写入一个序列字符串列表,如需换行,需要自己加入换行符 | ||
f.flush() | 刷新文件缓存,直接把内部缓存的数据写入文件 | ||
3 | 文件的定位 | f.seek(offset) | 设置文件的当前位置,即指针位置 |
f.tell() | 返回文件的当前位置,即指针位置 |
文件的打开与关闭
内置函数:open(),创建一个file对象,之后才可以用它调用相关的方法。
格式:
file_object = open(file,[,mode],[,encoding="utf-8"],[,buffering])
解释:
- file_object —> open()返回的对象
- file —> 要打开的文件
- mode —> 指定模式:只读,写入,追加等等。表。一般默认为只读
- encoding —>指定文件编码,usually,“utf-8”/“GBK”
- buffering —> 若设置为0,不会有寄存;设为1,访问文件时会寄存行;设为大于1的数,表明是寄存区的缓冲大小;设为负数,则寄存区的缓存区大小为系统默认。
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
文件对象的属性
属性 | 描述 |
---|---|
f.name | 返回文件的名称 |
f.mode | 返回打开文件的访问模式 |
f.closed | 如果文件已经关闭,返回 |
f = open('./date/GreenFlowerPorcelain.txt','r')
f.read()
print(f.name)
print(f.mode)
print(f.closed)
f.close()
# ./date/GreenFlowerPorcelain.txt
# r
# False
关闭
f.close()
with open() as f :# 打开后关闭
节省计算机资源和提供性能,使用完文件之后,关闭它。
文件的读写
读
-
f.read([size])
- 从文件指针处读取。
- 传递size,指定读取的字节数
-
readline(),以行为单位读取
-
readlines(),返回一个列表
f = open('./date/GreenFlowerPorcelain.txt', 'r')
for i in f:
print(i.strip(),end="")# strip(),end = "",各消除一个换行
写
- write(),从文件指针处开始写
- writelines()
定位读取
f.tell()
- 获取文件的当前位置。
f.seek()
-
f.seek(),设置指针位置
-
seek(offet,[from])
-
offset,要移动的字节数
-
from,指定偏移参考位置
- 0—>从开头偏移
- 1—>从当前位置偏移
- 2—> 从末尾偏移
-
-
拓展:
with open(file,[,mode],[,encoding='utf-8'],[,buffering])as f:
f.xx
# 运行完就会自动关闭文件。