通过子进程传递参数,并在Windows中关闭Python中的主程序时终止子进程

问题描述 投票:0回答:1

我有两个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来读取它?

任何帮助,将不胜感激。我是python的初学者。

EDIT1:为什么我使用子进程是因为我希望file2.py在后台运行,一旦条件满足,而主进程在侧面运行。

python windows error-handling subprocess parameter-passing
1个回答
0
投票

This可以回答你的问题(你使用的是shell=True param)

但是,在file2中导入file1作为模块会不会更容易? (如果您还不熟悉导入,可以参考this guide

© www.soinside.com 2019 - 2024. All rights reserved.