较大文件的读取
如果直接调用read()这个函数,它会将文本内容全部读取,如果要读取的内容文件比较大的情况,会一次性将文件的内容加载到内存中,容易导致内存泄漏
解决方案
read()函数可以接收一个size作为参数,该参数用来指定读取的字符的数量,其默认值是-1 它会读取文件中所有的字符
我们可以为size指定一个值,这样read()函数会读取指定数量的字符
文件读取的规则
每一次读取都是从上次读取到的位置开始读取
如果字符的数量小于size,则会读取剩余所有的字符
下面举一个例子
file_name = 'demo1.txt'
try:
with open(file_name,'r',encoding = 'utf-8') as file1:
file_item = ''
while True:
content = file1.read(10) # 设置10个字符读一次
if not content:
# 内容读取完毕 退出循环
break
file_item +=content
print(content)
# 披绣闼,俯雕甍,山原
# 旷其盈视,川泽纡其骇
# 瞩。闾阎扑地,钟鸣鼎
# 食之家;舸舰迷津,青
# 雀黄龙之舳。云销雨霁
# ,彩彻区明。落霞与孤
# 鹜齐飞,秋水共长天一
# 色。渔舟唱晚,响穷彭
# 蠡之滨;雁阵惊寒,声
# 断衡阳之浦。
print(file_item)
# 披绣闼,俯雕甍,山原旷其盈视,川泽纡其骇瞩。闾阎扑地,钟鸣鼎食之家;舸舰迷津,青雀黄龙之舳。云销雨霁,彩彻区明。落霞与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨;雁阵惊寒,声断衡阳之浦。
except FileNotFoundError:
print('没有找到demo1.txt文件')