Передайте аргументы в файл python, который я выполняю из другого файла python, используя функцию exe c - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь выполнить file1.py из file2 .py с помощью функции exe c.

exec(open('file1.py').read())

Теперь я хочу передать параметр target='target.yaml' в file1 .py из функции exe c. Как я могу это сделать? Пожалуйста, помогите

Ответы [ 2 ]

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

Хотя другой ответ является очень хорошим решением, если вы сами пишете оба файла, вам следует подумать об импорте одного файла в другой и непосредственном вызове функции из другого файла.

file1.py:

import otherfile

argument = "Hello world!"

otherfile.fancy_function(argument)

otherfile.py:

def fancy_function(arg):
    print(arg)

if __name__ == "__main__":
    # If the file is called directly like `python otherfile.py` this will be executed
    fancy_function("I have my own world too!")
1 голос
/ 13 июля 2020

Вы можете использовать модуль subprocess :

файл1:

import subprocess

print("Running file1.py")
subprocess.run("python file2.py target.yaml", shell=True)
exit(0) # file2 will be opened in a new window

файл2:

import sys
yaml_file = sys.argv[1]
print("Running file2.py : yaml target: "  + yaml_file)

вывод: Running file1.py Running file2.py : yaml target: target.yaml

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