2016-06-01 17 views
0

テキストファイルのファイルパスを検索して置き換えたいですか?平均して 私のファイルサイズは2GBを超えています。2GBのテキストファイルサイズの文字列を検索して置き換えます

たとえば、 私はDドライブ "D:\ LargeFilesFolder"にフォルダを持っています。 とすべてのファイルがフォルダ内に存在します。私は"X:\path\link\here"の検索と置換するすべてのテキストファイルで

"D:\LargeFilesFolder\large_file_v001.txt" 
"D:\LargeFilesFolder\large_file_v002.txt" 
"D:\LargeFilesFolder\large_file_v003.txt" 

"Y:\here\link\path"

とpythonで大きなテキストファイルを読み込み、編集するための最良の最適化されたPythonの方法は何ですか..?

+4

改行を繰り返し、新しいファイルを書き込みます。その後、新しいファイルを古いファイルに移動します。 –

+0

txt_fileとしてopen(large_text_file、 'r')を使用して行間を反復すると、ファイル全体が読み込まれますが、ファイルサイズが大きいためです。私はメモリに最適化された方法でそれをしたい。 –

+1

いいえ、ファイル全体をメモリに読み込むことはありません。それを試してみてください。 –

答えて

5

改行を繰り返し、新しいファイルを書き込みます。その後、新しいファイルを古いファイルに移動します。

with open(outputfilename, "w") as outputfile: 
    with open(inputfilename, "r") as inputfile: 
     for line in inputfile: 
      # replace in line and write to outputfile 

shutil.move(outputfilename, inputfilename) 
関連する問題