динамическая переменная команды bash в скрипте Python - PullRequest
0 голосов
/ 20 января 2019

Я запускаю скрипт на Python в Centos, в котором есть некоторые команды bash с использованием подпроцесса:

import ConfigParser
import fileinput
import sys
import subprocess

config = ConfigParser.ConfigParser()
config.readfp(open(r'config.file'))
host = config.get('section-1', 'machine_hostname')



##changing the hostname of the machine

change_hostname = "sudo hostnamectl set-hostname new-hostname"
process = subprocess.Popen(change_hostname.split(), 
stdout=subprocess.PIPE)
output, error = process.communicate()

Я импортирую переменные из файла конфигурации

как передать «новый»-hostname "как переменная" host "для команды, которую я выполняю, которая может быть динамически назначена из файла конфигурации

1 Ответ

0 голосов
/ 20 января 2019

Кажется, что вы просто хотите собрать строку, вы можете использовать команду форматирования:

change_hostname = "sudo {} set-hostname new-hostname".format(host)

должно дать вам то, что вы хотите, если вы используете довольно недавноверсию python (3.6.4+ iirc) вы также можете сделать:

change_hostname = f"sudo {host} set-hostname new-hostname"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...