【发布时间】:2020-05-28 15:40:24
【问题描述】:
我正在尝试理解 Popen 方法。我目前在同一目录中有三个 python 文件:test.py、hello.py 和 bye.py。 test.py 是包含 subprocess.Popen 方法的文件,而 hello 和 bye 是简单的 hello world 和 goodbye world 文件,即它们只包含一个打印。
如果我这样做:
import subprocess
from subprocess import PIPE
tst = subprocess.Popen(["python", "hello.py"], stdout=PIPE, stderr=PIPE)
(out,err) = tst.communicate()
似乎一切正常,在 shell 中为 hello.py 获取正确的“Hello World”打印,并为 bye.py 执行相同的操作,shell 打印“GoodBye World”。
当我想运行这两个文件时,问题就开始了,
import subprocess
from subprocess import PIPE
tst = subprocess.Popen(["python", "hello.py", "python", "bye.py"], stdout=PIPE, stderr=PIPE)
(out,err) = tst.communicate()
这只会返回第一个 .py 文件的打印,然后返回
[WinError 2 ] The system cannot find the file specified
如果我还删除第二个“python”,就会发生这种情况。为什么会这样?
【问题讨论】:
-
如果你知道一个作品为什么不把它分成两个连续的电话?
-
如果你真的想同时调用两个
"python",你可以尝试在第二个"python"之前添加一个分号。
标签: python subprocess