Задать вопрос
@gadzhikuliev

Как редактировать конфигурационный файл Linux в Python?

Добрый день. Пишу скрипт для копирования конфигурационных файлов сетевого оборудования на TFTP сервер. Функцию обхода оборудования и копирования конфигов с него уже сделал, она работает. Осталось "добить" функцию редактирования конфига TFTP-сервера (в моём случае - tftpd-hpa). В конфиге необходимо корневой папке (параметр TFTP_DIRECTORY) менять название по умолчанию на определённое - например, текущая дата, когда было произведено копирование. В примере ниже новый каталог - переменная new. Так выглядит файл настроек tftpd-hpa до вмешательства скрипта:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --create"


А вот сама функция. Подстановку нужного параметра сделал, но не придумал, как в файл записать, не создавая дополнительный.

new = '"/home/user/tfrp"'
with open('config.txt') as cfg:
    for line in cfg:   
        if line.startswith('TFTP_DIRECTORY'):
            break
sett = line.split('=')[1].strip()
print(line)
print(sett)
line = line.replace(sett,new)
print(line)


Подскажите, пожалуйста, если кто делал подобное. Заранее спасибо.
  • Вопрос задан
  • 501 просмотр
Подписаться 2 Средний Комментировать
Решения вопроса 1
tsarevfs
@tsarevfs
C++ developer
Посмотрите на https://docs.python.org/3/library/configparser.html
Что касается изменения файла, то проще всего сначала считать в память, потом переоткрыть файл для записи и записать измененные данные из памяти.
https://stackoverflow.com/a/125713/1762922
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы