文件中有> 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空间)我认为问题是可扩展的,因为第x行中的x表示某人较小且文件大小为>>>。
答案 0 :(得分:3)
您可以像itertools.islice
这样执行相同操作:
import itertools
n = 1
with open('foobar.txt') as f:
print next(itertools.islice(f, n, n+1))