Я хотел бы заменить каждую строку, начинающуюся с определенного выражения (пример: <Output>
) с тем, что я хочу, чтобы путь вывода был. Я нашел и должен работать сценарий питона, который заменяет одну строку с другой, в каждом появлении в файле - что-то вроде:заменить строку, содержащую шаблон поиска, с другой строкой
text = open(path).read()
if output_pattern in text:
open(path, 'w').write(text.replace(pattern, replace))
Однако я хотел бы заменить text.replace(pattern, replace)
с чем-то, что заменяет всю строку, содержит pattern
с replace
. Я пробовал кое-что и терпел неудачу.
Примечание: Я могу читать, но не совсем писать питона ...
Один из моих неудач было заменить шаблон с линией. Фактически, он заменил весь файл только на шаблон замены, столько раз, сколько нужно ... Да, не смешно, так как я делал рекурсивный поиск (и предыдущая попытка заменить одну строку на другую, отлично работала, поэтому я был храбр и установил свою целевую директорию как корень того, с чем хочу работать)
Есть и другие отличные примеры, которые читаются по строкам и записываются в выходной файл, а затем копируют выходной файл на вход файл, но я получил ошибку.
Я не хочу использовать регулярное выражение, потому что шаблоны, которые я мог бы искать (и особенно то, что я хочу заменить) (может), содержат много специальных символов, включая обратную косую черту, но при необходимости они могут быть экранированы.
Вы должны сделать это, используя 2 текстовых файла: один, как * read *, а другой * write *. Лучше всего настроить его с помощью 'with',' while True' и 'readline()'. Вы можете создать тестовый файл только из первых десяти строк, заставить его работать, а затем запустить его на реальной цели. [Посмотрите здесь] (http://effbot.org/zone/readline-performance.htm) для отправной точки. – Droogans