Я хочу отредактировать строку в текстовом файле на сервере Linux, используя python. Процесс включает следующие шаги
- Te lnet к серверу (с помощью telnetlib)
- Go в требуемый каталог
- , откройте текстовый файл в каталог
- установить или сбросить флаг (ДА или НЕТ) переменной в текстовом файле на основе требования
- сохранить файл и выйти
I ' Я могу автоматизировать до шага 2. Однако я застрял на шагах с 3 по 5.
Я попытался имитировать c шаги, которые я выполняю вручную (с помощью редактора vim). Но я не могу выполнить «ES C», заменить и «: wq!» шаги. Есть ли альтернативная процедура для редактирования файла или какие-либо способы улучшить имитацию ручного процесса
Я добавил свой код здесь
host = input("Enter the IP address:")
port = input("Enter the port:")
tn = telnetlib.Telnet(host,port)
tn.write(b'\n')
tn.read_until(b"login:")
tn.write(b"admin" + b'\n')
tn.read_until(b"Password:")
tn.write(b"admin" + b'\n')
tn.write(b"version" + b'\n')
tn.write(b"path/to/file/" + b'\n')
# OPEN THE FILE and SET or RESET THE FLAG and CLOSE
with in_place.InPlace('filename.txt') as file:
for line in file:
line = line.replace('line_to_change', 'changed_data')
file.write(line)
print('Task executed')
Я пытался использовать библиотеку на месте, чтобы установить флаг, но программа ищет файл на моем локальном компьютере, а не на сервере. Поэтому он выдает сообщение об ошибке, указывающее, что файл отсутствует.