Импортируйте текстовый файл в сценарий python для выполнения команд терминала - PullRequest
1 голос
/ 12 июля 2020

Я хочу импортировать текстовый файл в сценарий python, а затем выполнить условие if, примерно так:

Допустим, у меня есть это в файле example.txt:

os: ubuntu
required: no

И я хочу сделать это:

if os =="ubuntu" and if required== "no":
 (exec terminal command);
elif os =="debian" & if required== "yes":
 (exec another terminal command);

Игнорировать синтаксические ошибки, это только вы должны понимать.

EDIT

Благодаря @zyad osseyran мне удалось вот это получить.

f = open("example.txt", "r")

for x in f:
    x = x.split(':') 
    atribute = x[0]
    value = x[1]

Как сделать это, превратившись в словарь? И как получить значения отсюда, чтобы создать условие ЕСЛИ?

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Чтобы сохранить значения в словарь, вы можете сделать следующее:

config = dict()                   # construct an empty dictionary. Fill it with key-value pairs a every iteration
f = open("demofile.txt", "r")
for x in f:
   x = x.split(':') 
   attribute = x[0].strip()       # .strip() removes preceding and trailing whitespaces
   value = x[1].strip()
   config[attribute] = value      # save the attribute and its value to the dictionary

В этом случае config - это словарь, в котором все значения присвоены attribute как ключи и соответствующие value в качестве значений. Я также добавил метод .strip() к элементам, которые вы читаете, чтобы удалить любые пробелы (так как ваш example.txt форматируется, x[1] будет иметь значения " ubuntu" и " no", а не "ubuntu" и "no").

Теперь вы можете построить оператор if следующим образом:

if config['os'] == 'ubuntu' and config['required'] == 'no':
    # exec terminal command
elif config['os'] == 'debian' and config['required'] == 'yes':
    # exec another terminal command
1 голос
/ 12 июля 2020
    f = open("demofile.txt", "r")

    for x in f:
      x = x.split(':') 
      attribute = x[0]
      value = x[1]

https://www.w3schools.com/python/python_file_open.asp

https://www.w3schools.com/python/ref_string_split.asp

Просто закажите их в красивом словаре, и вы можете делать свои операторы if https://www.w3schools.com/python/python_dictionaries.asp

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