Добавить или удалить некоторый текст в файле в определенной строке в Python - PullRequest
2 голосов
/ 31 декабря 2011

Я хочу отредактировать файл конфигурации Apache2 в скрипте Python. Я хочу добавить или удалить имя домена в директиву ServerAlias, поэтому сценарию необходимо отредактировать определенный файл и выполнить поиск строки, начинающейся с «ServerAlias», а также добавить или удалить определенное имя домена в этой строке.

Я не уверен, как это сделать, будет полезен любой намек на документацию, я также рассматриваю возможность использования подпроцесса для использования некоторых инструментов bash, таких как sed.

Ответы [ 2 ]

1 голос
/ 31 декабря 2011

Вы можете использовать fileinput.input в режиме на месте:

import fileinput

for line in fileinput.input("mifile", inplace=True):
    if line.startswith("ServerAlias"):
        line = doherewhatyouwant(line)
    print line,

из документов:

если ключевое слово аргумент inplace = True передается в fileinput.input () или в конструктор FileInput, файл перемещается в файл резервной копии и стандартный вывод направляется на входной файл (если файл того же имя, поскольку файл резервной копии уже существует, он будет заменен без уведомления). Это позволяет написать фильтр, который переписывает свой входной файл на месте. Если задан параметр резервного копирования (обычно backup = '.'), он указывает расширение для резервной копии файл, и файл резервной копии остается вокруг; по умолчанию расширение '.bak' и он удаляется при закрытии выходного файла. На месте фильтрация отключена при считывании стандартного ввода.

0 голосов
/ 31 декабря 2011

Пара инструментов, которые вам понадобятся для вашей торговли

  1. str.startswith
  2. str.join или просто + (конкатенация строк)
  3. readline для последовательного чтения файла
  4. Конечно, открытие и закрытие файла
  5. написать файл
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...