1. 文件读写操作
读写文件是最常见的 IO 操作, Python 内置了读写文件的函数。
在磁盘上读写文件的功能是由操作系统提供的,所以读写文件是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据,或者把数据写入这个文件对象。
文件打开方式
open(file, mode='r', buffering=None, encoding=None) open 函数在打开一个文件 file: 打开文件的目录路径 mode: 打开文件的方式,读写; buffering: 缓冲 buffering 大小 encoding: 以什么格式打开,常见:utf-8, GBK
不同模式打开文件的完全列表:
2. File 对象的属性
一个文件被打开后, 你有一个file对象,你可以得到有关该文件的各种信息。
以下是和file对象相关的所有属性的列表:
f = open('test.txt', 'r', encoding='utf-8') print('文件名:', f.name) print('是否已关闭:', f.closed) print('访问模式:', f.mode) # 执行结果: # 文件名: test.txt # 是否已关闭: False # 访问模式:r
3. 文件定位
(1)tell
获取被打开文件当前光标位置
f = open('test.txt', 'r', encoding='utf-8') str1 = f.read(8) print(str1) print('光标当前位置:', f.tell()) f.close() # 执行结果: # abcdefgh # 光标当前位置: 8
(2)seek(offset [, from])
改变当前光标的位置,offset 变量表示要移动的字节数
from 变量指定开始移动字节的参考位置
from=0 将文件的开头作为移动字节的参考
from=1 使用当前的位置作为参考位置
from=2 该文件的末尾将作为参考位置
f = open('test.txt', 'r', encoding='utf-8') # read 方法读取的是字符数,而不是字节数 str1 = f.read(8) print('【读取前8个字符:】',str1) print('【当前光标的位置(单位字节):】', f.tell()) # 使用 seek 方法将光标一定到文件开始位置 f.seek(0, 0) print('【当前光标的位置(单位字节):】', f.tell()) print('【读取文件所有内容:】', f.read()) # 执行结果: # 【读取前8个字符:】 哪里有彩虹告诉我 #【当前光标的位置(单位字节):】24 #【当前光标的位置(单位字节):】0 #【读取文件所有内容:】哪里有彩虹告诉我能不能把我的愿望还给我
对文件内容操作的方法对应的操作单位:
根据各种模式,总结如下(+ 表示该模式能够使用的具体操作):
参考文档: