【发布时间】:2017-02-23 08:39:48
【问题描述】:
我有一个 Python 脚本,它需要读取一个非常大的文本文件的一部分,从第 N 行开始,到 N+X 结束。 我不想使用“open('file')”,因为这会将整个内容写入内存,这既需要太长时间,又会浪费太多内存。 我的脚本在 Unix 机器上运行,所以我目前使用原生的 head 和 tail 函数,即:
section = subprocess.check_output('tail -n-N {filePath} | head -n X')
但感觉必须有更聪明的方法来做这件事.. 有没有办法在 Python 中获取文本文件的 N 到 N+X 行而不打开整个文件?
谢谢!
【问题讨论】:
-
“我不想用“open('file')”,因为那样会把整个东西写到内存中,这样既耗时又浪费太多记忆。” 这不是
open所做的;使用它。