![](/img/trans.png)
[英]Mock a shell command in a script called from Python subprocess.Popen()
[英]Subprocess.Popen doesnt finish the called script
我的目标是通过使用 subprocess.Popen 调用不同的 python 脚本并将结果保存在 txt 文件中。 我用了
process = subprocess.Popen("start cmd /c abq2020 python " + directory + os.sep + "data_mean.py", shell=True)
process.wait()
file = np.loadtxt(directory + os.sep + 'Values.txt')
在我的主程序和
f = open(varpath + os.sep + 'Values.txt','w+')
for i in Output:
for j in i:
f.write(str(j) + ' ')
f.write('\n')
f.close()
在子程序中。
现在我的问题是主程序不会等到子程序创建 txt 文件并因此产生错误消息。
我使用这种方法是因为我不知道在主进程和子进程之间传递变量的另一种方法。 我感谢任何想法和建议。
提前致谢。
我不知道apq2020
是什么以及为什么它在 python 命令之前,但我假设您知道自己在做什么。 您不需要也不应该启动命令提示符。 除了提供许多缺少的import
语句之外,这就是您所需要的:
process = subprocess.Popen("abq2020 python " + directory + os.sep + "data_mean.py", shell=True)
process.communicate() # process.wait() will work in this case, too
file = np.loadtxt(directory + os.sep + 'Values.txt')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.