Нужно открыть файл, найти и заменить в нем одно слово (оно встречается в файле 1 раз) и сохранить под другим названием.
На баше эта задача решается вот так:
cat /tmp/test/file | sed "s/TEST_OLD/TEST_OLD/"> /tmp/test/file_new
C Питоном не очень, представляю что проблема решается как-то примерно так:
import re
output_file = open("/tmp/test/file").readlines()
string = "TEST_OLD"
string.replace(string,"TEST_NEW")
open("/tmp/test/file_new", "w")
Ответ
Ну в целом верно, только модуль re не нужен, также стоит либо использовать with, либо закрывать файлы file.close() после использования. Как то так в конечном итоге:
with open('test1') as file_in:
text = file_in.read()
text = text.replace("TEST_OLD", "TEST_NEW")
with open("test2", "w") as file_out:
file_out.write(text)
Да и readlines() возвращает список строк и это не совсем то что нам здесь нужно.
Update 0:
Для замены лучше использовать регулярные выражения, чтобы избежать проблем при включении слова в другие и т.д. Спасибо @ReinRaus за замечание.
Обрати внимание на ответ @andy.37 Если файл объемный, то read() плохая идея, поскольку так мы загрузим все содержимое файла в память. Правильный выбор в этом случае - построчное чтение/запись.
Комментариев нет:
Отправить комментарий