一个文件中有超过 1000 万行,总文件大小为 19GB,我只需要获取第二行。
可以通过循环来获得特定的行:
for i,j in enumerate(open('foobar.txt')):
if i == 1:
print j
break
或使用linecache
(但不适用于大文件,因为它将所有内容加载到 RAM 中)
import linecache
print linecache.getline(open('foobar.txt'),2)
或使用unix
命令和os.popen
:
import os
infile = 'foobar.txt'
print os.popen('head -2 '+infile+'|tail -1')
我正在探索更多选择以仅获得第二行。
- 有没有办法读到第二次
\n
然后停止阅读?(这样可以节省 RAM 空间) - 有没有办法读取到 1GB 的文件然后寻找第二行?
- 直到第二行还有什么其他的阅读方式?
我假设这个问题是可扩展的,因为第 x 行中的 x 表示某人很小并且文件的大小是 >>>。