【发布时间】:2018-07-16 11:58:39
【问题描述】:
我很清楚有多个线程在处理这个问题,因为我使用它们来尝试自学如何去做。但是,对我来说它不起作用,我想知道是否有人可以帮助我找到我的错误。
所以我得到了一个程序(我们称之为 prog1),它为每个字符串变量调用一个脚本,如下所示:
os.system(r'C:\Users\user\docs\bla\script.py %s'%variable)
在 script.py 中,我现在只想通过禁用所有代码来测试此调用是否有效,但只是这样做:
def main(string):
print(string)
root
if __name__ == "__main__":
print('I got executed')
main(sys.argv[1])
问题是,如果我执行 prog1 没有任何反应。没有错误 - 所以它会运行并且控制台会弹出一秒钟。但是,什么也没有发生 - 没有打印任何字符串。如果我直接执行 script.py 它可以工作。
编辑:我通过使用子流程包让它执行没有错误:
subprocess.call(r'C:\...\script.py' %s' %variable,shell = True)
但是,问题仍然存在 - 没有任何反应。或者,我现在注意到,在后台弹出一个 Windows 窗口,询问我想用哪个程序执行以 '.py' 结尾的文件,但这对我没有帮助,因为我想在控制台中执行:(
【问题讨论】:
-
你应该使用 subprocess 模块,它允许你传递参数。