代码语言:javascript复制
# 文件读操作
file = open('演示文件', 'r', encoding='utf8')
"""
1、read可以指定具体取多少字符,默认全取。
2、read有文件指针,只能一直往前取值,不能后退
3、下面的例子中,我们先取前5个字符,在取全部字符。在取全部字符时不会在去取前5个字符(因为文件指针只能向前,取出过的字符不会再取)
"""
print(file.read(5))
# 逐行取(文件指针),返回值是字符串,可以指定取几个字符,不指定默认取整行
print(file.readline(1))
print(file.readline())
# 取多行,返回值是列表,不指定取几行默认全取
print(file.readlines(1))
# readlines会将所有内容取出返回列表,如果文件较大会导致内存不足。
# 所以使用下面的方法打印,for循环会将file做成迭代器,使用迭代器进行取值(迭代器,python会逐行取出返回,并释放内存,不会全部取出,避免内存不足),迭代器在函数部分
for i in file:
print(i.strip())
file.close()
# 文件指针
file = open('演示文件', 'r', encoding='utf8')
# 打印指针初始位置
print(file.tell())
# 读取5个字符
print(file.read(5))
# 打印指针当前位置
# 文件指针计算位置,一个英文占一个字符,中文占3个字符(utf8编码)
print(file.tell())
# 读取5个字符
print(file.read(5))
# 设置文件指针
# 将文件指针设置到初始位置
file.seek(0)
# 读取5个字符
print(file.read(5))