读写:定位:f.seek(偏移量, [0,1, 2])->0,开头,默认。
1,当前位置。
2,文件末尾。
注意:文本文件的操作模式下(不带b),只能写0。如果想要写1或2,必须在二进制文件操作模式下(带b)
f.tell():查看当前指针的位置。
f = open("a.txt", "rb") print(f.tell()) f.seek(2, 2) print(f.tell()) print(f.read()) print(f.tell()) f.close()
读:
f = open("a.txt", "r")
f.read(字节数):字节数默认是文件内容的长度。下标会自动后移。
f.seek(2) content = f.read(3) print(f.tell()) print(content)
f.readline([limit]):读取一行数据。limit,限制的最大字节数。
print("---------", f.tell()) content = f.readline() print(content, end="") print("---------", f.tell()) content = f.readline() print(content, end="") print("---------", f.tell()) content = f.readline() print(content, end="")
f.readlines():会自动的将文件按换行符进行处理。将处理好的每一行组成一个列表返回。
content = f.readlines()
print(content)
for in:可以直接遍历f本身。也可遍历行列表
# for x in f: # print(x, end="") content = f.readlines() for y in content: print(y,end="")
判断可读性:f.readable()
注意:一般文件特别大的时候,可以使用readline方法(或者使用for in)。按行加载,可节省内存。但相比于其他两种读取方式,性能较低。
其他两个方法(read()、readines),一次性读取文件所有内容。虽然占用内存,但是性能比较高。
写:f.write("内容"),返回值是写入的字节长度。判断是否可写:writeable()。
f = open("a.txt", "a") print(f.write("abc")) f.close()
关闭:f.close():关闭一个打开的文件。为什么需要关闭:可以释放系统资源。会立即清空缓冲区的数据内容到磁盘文件。
补充:f.flush():立即刷新缓冲的内容写入到文件中去。
f = open("a.txt", "a") f.write("abc") f.flush() f.close()