передать аргументы через подпроцесс и завершить подпроцесс при закрытии основной программы на Python в Windows - PullRequest
0 голосов
/ 19 марта 2019

У меня есть два файла Python, файл 1 и файл 2, которые делают две разные вещи. Я хочу запустить их вместе. Я использую VS2017

Псевдокод для файла 1:

Class A:
   foo1():
    .
    .
   foo2();
    if variable<30;
        #do this
    else;
      process = subprocess.Popen('py file2.py' ,shell=True,stdin=None, stdout=None, stderr=None, close_fds=True)

    #rest of the code for foo2()

if __name__ == "__main__":   
  A.foo2();

Я также хотел передать переменную во второй файл. Я смотрю на что-то вроде

variable = input("enter variable)
cmd = ['py file2.py', variable]
subprocess.Popen(cmd ,shell=True,stdin=None, stdout=None, stderr=None, close_fds=True)

Я получаю сообщение об ошибке:

«py subproleap.py» 'не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

И даже если я передам переменную, как мне получить file2.py для ее чтения?

Любая помощь будет оценена. Я новичок в питоне.

EDIT1: Почему я использую подпроцесс, я хочу, чтобы file2.py запускался в фоновом режиме, как только условие выполнено, а основной процесс выполняется в стороне.

1 Ответ

0 голосов
/ 19 марта 2019

Этот может ответить на ваш вопрос (вы используете параметр shell=True)

Но не проще ли будет импортировать file2 как модуль в file1? (если вы еще не знакомы с импортом, вы можете обратиться к этому руководству )

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