2016-06-01 12 views
0

Ich möchte einige Dateipfade in Textdateien suchen und ersetzen. im Durchschnitt ist meine Dateigröße über 2 GB.Suchen und Ersetzen von Zeichenfolgen in 2 GB Textdateigröße

zum Beispiel: Ich habe einen Ordner in meinem D-Laufwerk "D: \ LargeFilesFolder". und alle Dateien sind im Ordner vorhanden.

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

In allen Textdateien i für "X:\path\link\here" suchen wollen und ersetzen mit "Y:\here\link\path"

Was ist der beste optimierte Python Weg, um große Textdateien in Python zu lesen und bearbeiten ..?

+4

Iterieren Sie über die Zeilen und schreiben Sie eine neue Datei. Verschieben Sie dann die neue Datei über die alte Datei. –

+0

Zum Iterieren über Zeilen mit offenem (large_text_file, 'r') als txt_file wird dies die gesamte Datei laden, aber da die Dateigröße groß ist. Ich möchte es mit einem speicheroptimierten Weg machen. –

+1

Nein, es wird nicht die gesamte Datei in den Speicher gelesen. Versuch es. –

Antwort

5

Iterieren Sie die Zeilen und schreiben Sie eine neue Datei. Verschieben Sie dann die neue Datei über die alte Datei.

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)