我很清楚有多个线程正在处理此问题,因为我使用它们是为了自学如何做。但是,对我来说,它不起作用,我想知道是否有人可以帮助我找到我的错误。
所以我有一个程序(我们称它为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)
但是,问题仍然存在-没有任何反应。或者好吧,我现在注意到,在“背景”窗口中弹出一个窗口,询问我要使用哪个程序来执行以“ .py”结尾的文件,但这对我没有帮助,因为我想在控制台中执行:(>
答案 0 :(得分:1)
尝试使用subprocess
模块,它允许更灵活的参数设置和其他配置更改:
import subprocess
subprocess.check_call(["python.exe", r"C:\Users\user\docs\bla\script.py", variable])
执行时:
subprocess.check_call(["python", r"C:\Users\user\docs\bla\script.py", "Blue"])
我被处决
蓝色
有关子流程的更多信息:https://docs.python.org/2/library/subprocess.html