【发布时间】:2018-05-08 20:01:35
【问题描述】:
我有一个 python 代码应该在其他文件中执行另一个代码。
由于我现在没有时间解释的原因,我需要使用subprocess-module 或类似的东西。我的功能应该使用我的第二个文件中的print- 命令应该给出它们的输出的任何窗口。这是我的文件:
maincode.py:
#import subprocess
def startFileInNewProcess(filename):
proc = subprocess.Popen(["python", filename], shell=True)
startFileInNewProcess("mysecondfile.py")
mysecondfile.py:
import os
print os.getcwd()
据我了解一些关于 SO 的文章,参数shell=True 应该使用mysecondfile.py 的输出创建一个新窗口。这不会发生!任何人都可以解释原因并请提出改进建议...
【问题讨论】:
-
我在 debian 系统上,更详细:Raspbian
-
不,
shell=True不会创建新窗口。它只是意味着将通过shell执行指定的命令。见docs.python.org/3/library/… -
不,
shell=True导致第一个参数转换为字符串并用作sh -c的参数。如果你传递一个列表,你不想要shell=True。
标签: python subprocess