本文共 903 字,大约阅读时间需要 3 分钟。
Python读取大文件的高效方法
当你试图用Python读取2GB或更大的文件时,使用普通的方法(如read和readlines)可能会抛出MemoryError,说明内存不足以加载整个文件。这通常发生在文件太大,无法完全读取时。
逐行读取方法
采用逐行读取的方式,可以有效减少内存占用。具体实现如下:
with open('filename.txt', 'r', encoding='utf-8') as f: while True: line = f.readline() if not line: break print(line) 这种方法每次只读取一行内容,适合处理大文件。循环终止条件为文件结束。
指定长度读取方法
如果需要灵活控制读取长度,可以采用每次读取固定字节数的方式:
with open('filename.txt', 'r', encoding='utf-8') as f: while True: data = f.read(1024) if not data: break print(data) 这种方式每次读取1024字节,从而分批处理大文件。
自动管理优化方法
更高效的方式是利用Python的内置文件处理功能,结合with语句和生成器。使用for循环遍历文件:
with open('filename.txt', 'r', encoding='utf-8') as f: for line in f: # 对每行内容进行处理 do_something(line) 这种方法利用了效率高的IO缓存机制,自动处理大文件,无需担心内存不足。
注意事项
for line in f自动管理内存,适合大文件处理,避免一次性读取过大文件内容。通过以上方法,可以高效且安全地读取大文件,合理分配内存,避免内存错误。
转载地址:http://nmrlz.baihongyu.com/