2016-06-01 4 views
0

Я хочу искать и заменять некоторые пути к файлам в текстовых файлах. в среднем мой размер файла превышает 2 ГБ.Поиск и замена строк в текстовом файле 2GB

например: У меня есть папка в моем D-диске «D: \ LargeFilesFolder». и все файлы существуют в папке.

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

Во всех текстовых файлов я хочу найти "X:\path\link\here" и заменить "Y:\here\link\path"

Что такое лучший оптимизированный питон способ читать и редактировать большие текстовые файлы в питон ..?

+4

Итерации над строками и создание нового файла. Затем переместите новый файл поверх старого файла. –

+0

Для Iterate над строками с открытым (large_text_file, 'r') в качестве txt_file будет загружен весь файл, но размер файла большой. Я хочу сделать это с оптимизированной памятью. –

+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) 
Смежные вопросы