我必须Python脚本:Tester1.py和Tester2.py。 在Tester1内我想不时启动Tester2.py。我也想通过Tester2.py一些参数。目前我的代码看起来是这样的:Python:子进程与终端不同。我必须改变什么?
Tester1:
subprocess.call(['python3 Tester2.py testString'])
Tester2:
def start():
message = sys.argv[1]
print(message)
start()
现在我的问题:如果我和我的终端Tester2像 'python3 Tester2.py的TestString' 运行我的控制台打印出testString。但是,如果我运行Tester1并且Tester1尝试启动Tester2,则会出现IndexError:“列表索引超出范围”。
我该如何改变我的代码才能让所有的东西都能正常工作?
编辑: niemmi告诉我,我有我的代码更改为:
subprocess.call(['python3', 'Tester2.py', 'testString'])
,但现在我得到一个没有这样的文件或目录错误尽管这两个脚本是在同一目录下。有人知道为什么吗?
仅供参考,如果你正在使用Python 3.5或更高,文档建议使用子进程的run()函数:https://docs.python.org/3/library/subprocess.html – tschale