ファイルのフォルダ(20 MBから100 MBの範囲のサイズ)を読み込み、各行のデータを変更し、ファイルのコピーPython writelines()とwrite()の巨大な時間差
このコードを90 MBファイル(〜900,000行)で実行すると、ファイルに書き込むのにかかる時間として140秒が表示されました。ここではwritelines()
を使用しました。そこで、ファイルの書き込み速度を向上させるさまざまな方法を探しました。ほとんどの記事では、write()
とwritelines()
は、1つの連結文字列を書いているので、何の違いも見られません。私はまた、唯一の次のステートメントにかかる時間がチェック:
new_string = '\n'.join(new_my_list) + '\n'
をそして、それはわずか0.4秒を要したので、撮影した大規模な時間があるため、リストを作成するではなかったです。 だけwrite()
を試して、私はこのコードを試してみました:
with open(inputPath, 'r+') as myRead:
my_list = myRead.readlines()
new_my_list = clean_data(my_list)
with open(outPath, 'w+') as myWrite:
tempT = time.time()
myWrite.write('\n'.join(new_my_list) + '\n')
print(time.time() - tempT)
print(inputPath, 'Cleaning Complete.')
をそして、それは2.5秒を印刷しました。なぜ同じデータでも、write()
とwritelines()
のファイル書き込み時間に大きな違いはありますか?これは正常な動作ですか、あるいは私のコードに何か間違っていますか?どちらの場合も出力ファイルは同じように見えるので、データが失われていないことがわかります。
upvote。 –
また、私のclean_data()関数は各行を取り除きますので、余分な改行は削除されます。 –