定位
1. seek
"""
作用:操作文件指针位置
语法:f.seek(offset, whence)
参数:offset: 偏移量; whence: 0, 开头, 1, 当前位置, 2, 文件末尾
注意:文本文件操作模式下,只能写 0;
二进制文件操作模式下,可以写 1, 也可以写 2
"""
f = open("a.txt", "r")
f.seek(2)
print(f.read())
f.close()
file = open("a.txt", "rb")
file.seek(-2, 2)
print(file.read())
f.close()
2. tell
"""
作用:查看当前文件指针位置
语法:f.tell()
"""
f = open("a.txt", "r")
print(f.tell())
f.seek(2)
print(f.read())
print(f.tell())
f.close()
读
1. read
"""
作用:读取当前文件指针所在位置后面所有内容
语法:f.read([n])
参数:n, 字节数, 默认是文件内容长度
注意:文件指针会自动向后移动
"""
f = open("a.txt", "r")
f.seek(2)
print(f.read(2))
print(f.tell())
f.close()
2. readline
"""
作用:读取一行数据
语法:f.readline([limit])
参数:limit, 限制的最大字节数
注意:文件指针会自动向后移动
"""
f = open("a.txt", "r")
print(f.tell())
content = f.readline()
print("content = %s" % content, end="")
print(f.tell())
content = f.readline()
print("content = %s" % content, end="")
print(f.tell())
content = f.readline()
print("content = %s" % content, end="")
print(f.tell())
content = f.readline()
print("content = %s" % content, end="")
print(f.tell())
content = f.readline()
print("content = %s" % content, end="")
f.close()
3. readlines
"""
作用:会自动地将文件按换行符进行处理
语法:f.readlines()
返回值:列表,元素为文件每一行字符
"""
f = open("a.txt", "r")
lines = f.readlines()
print(lines)
for i in lines:
print(i, end="")
f.close()
4. for in
import collections
f = open("a.txt", "r")
print(isinstance(f, collections.Iterator))
for i in f:
print(i, end="")
f.close()
5. 判断是否可读
f = open("a.txt", "r")
if f.readable():
content = f.readlines()
for i in content:
print(i, end="")
f.close()
6. 读取方法选择
1. readline 和 for in 迭代器:节省内存,性能较低,适合大文件读取
2. read 和 readlines:占用内存,性能较高,适合小文件读取