1

ファイルには 1,000 万行を超える行があり、合計ファイル サイズは 19 GB です。2 行目だけを取得する必要があります。

特定の行を取得するには、ループを使用できます。

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')

2行目だけを取得するためのオプションをさらに検討しています。

  • 2回目まで読んで途中でやめる方法はあり\nますか?(このようにしてRAMスペースを節約します)
  • ファイルを 1GB まで読み込んでから 2 行目を探す方法はありますか?
  • 2 行目まで読むには、他にどのような方法がありますか?

x行のxが小さく、ファイルのサイズが>>>であることを考えると、質問はスケーラブルであると思います。

4

1 に答える 1

3

次のようにして同じことができますitertools.islice

import itertools
n = 1
with open('foobar.txt') as f:
    print next(itertools.islice(f, n, n+1))
于 2013-09-24T10:34:58.927 に答える