0

非常に大きな txt.file (約 20G) があります。最初の行から最後まで読み取るのではなく、マルチプロセスを使用してファイル全体を読み取ることはできますか?

たとえば、4 つのプロセスがあり、最初にファイルの行数を数えます (2000 行あるとします)。プロセス1は1行目~500行、プロセス2は501行目~1000行を読み取りますが、可能かどうか知りたいです(あるプロセスが読み取りを行っている場合、別のプロセスが同時に読み取ることはできますか?)。おそらく、この質問はtxtファイルを分割する方法に関するものです。

よかったら。どうやってするの?ファイルの 1 つのプロセスのコードは次のようになります。

file = open(file_path,"r",encoding = 'utf-8')
alllines = file.readlines()
file.close()

for line in alllines:
    to do...

alllines を数字に変更する方法がわかりません。何か提案はありますか? 前もって感謝します。

4

1 に答える 1

1

ファイルのメモリ マッピングを試すことができます。mmap:ドキュメントはこちらを参照してください

その後、マルチプロセッシング タスクを介してファイルを読み取り、HDD ではなくマップされたファイルにアクセスできます。

于 2015-04-10T14:42:06.710 に答える