文件对象常用的函数
序号 | 函数 | 描述 |
---|---|---|
1 | file.read([size]) | 从文件读取指定的字符数, 如果未指定size, 则读取文件中的所有内容 |
2 | file.write(str) | 将字符串写入文件, 返回的是写入的字符串的长度 |
3 | file.close() | 关闭文件对象 |
4 | file.flush() | 刷新文件内部缓冲, 直接把内部缓冲区的数据立刻写入文件 |
5 | file.readline() | 读取文件的一行, 包括换行符'\n' |
6 | file.readlines() | 一次性读取文件的所有行, 返回一个列表, 列表中的单个元素是文件的单行的内容 |
7 | file.seek(offset[,where]) | 移动文件读取指针的位置<br />参数: <br />offset - 偏移量(单位: 字节)<br />where - 可选(3个值: 0 从文件开头偏移 1 从当前位置偏移 2 从文件末尾偏移) |
8 | file.truncate([size]) | 截断<br />参数: size 指定时, 从文件开头阶段size个字节<br />size 未指定, 从当前位置截断至文件末尾, 当前位置值末尾内容被删除 |
不同模式打开文件的完全列表
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
# 有testfile.txt, 内容为我爱你中国心爱的母亲我为你流泪也为你自豪
# 读取所有内容, 然后输出 f = open('testfile.txt', mode='r', encoding='utf-8')content = f.read()print(content)f.close()
# 一次读取所有行的内容, 遍历输出f = open('testfile.txt', mode='r', encoding='utf-8')file_lines = f.readlines()for line in file_lines: print(line, end='')f.close()
# 读取指定字符数f = open('testfile.txt', mode='r', encoding='utf-8')s = f.read(3) # 注意此处是指字符数, 不是字节数, 如果代表字节数, utf-8编码一个中文占3个字节, 那么输出结果就应该为 '我'print(s)f.close()# 输出结果我爱你
2. 写入文件
# 清空原有内容写入f = open('testfile.txt', mode='w', encoding='utf-8')f.write('真的很自豪')f.flush()f.close()# 追加写入f = open('testfile.txt', mode='a', encoding='utf-8')f.write('真的真的很自豪\n')f.close()
3. 操作文件的指针
# 操控文件读取指针位置f = open('testfile.txt', 'r')f.seek(3) # 读取指针右移3个字节print(f.read(2)) # 读取2个字符f.seek(6)print(f.read(1))f.seek(3, 0) # 读取指针从文件开头右移3个字节print(f.read(1))print(f.tell()) # 返回文件指针的当前位置# f.seek(3,1)print(f.readline())# print(f.read())f.close()# 输出结果爱你你爱6你中国