私は巨大なテキストファイル(12GB)を持っています。行はタブで区切られ、最初の列にはIDが入ります。 IDごとに何かしたい。したがって、私の計画は最初の行から始め、次のIDに達するまで行ごとに最初の列を通ります。Python - テキストファイルの特定の行を読み込むには?
start_line = b
num_lines = 377763316
while b < num_lines:
plasmid1 = linecache.getline("Result.txt", b-1)
plasmid1 = plasmid1.strip("\n")
plasmid1 = plasmid1.split("\t")
plasmid2 = linecache.getline("Result.txt", b)
plasmid2 = plasmid2.strip("\n")
plasmid2 = plasmid2.split("\t")
if not str(plasmid1[0]) == str(plasmid2[0]):
end_line = b
#do something
コードは機能しますが、問題はラインキャッシングが毎回txtファイルをリロードするように見えるということです。パフォーマンスを向上させないと、コードは数年間実行されます。
問題の解決方法や代替方法を知っているとよいと思います。
おかげで、 フィリップ
行はタブで区切られますか?私のコラムのように聞こえる? – RuDevel
すべてのコードを表示してください。 'linecache'とは何ですか? – eguaio
@eguaio:https://docs.python.org/3/library/linecache.html – cdarke