尝试循环时Python cmd脚本挂起

尝试循环时Python cmd脚本挂起,python,batch-file,testing,cmd,automation,Python,Batch File,Testing,Cmd,Automation,我正在尝试制作一个python脚本,以使用不同的配置一个接一个地多次运行批处理文件。我遇到的问题是,我试图找到一个等待它等待运行完成,然后运行另一个,但是cmd挂起,不允许在cmd中写入第二个参数。当仅使用cmd手动运行批处理文件时,它不会这样做。所以我真的不明白问题是什么。我对Python非常陌生,因此欢迎您提出如何改进此脚本的建议: import subprocess # open commandline subprocess.Popen([r"cmd"]) # Run every te

我正在尝试制作一个python脚本,以使用不同的配置一个接一个地多次运行批处理文件。我遇到的问题是,我试图找到一个等待它等待运行完成,然后运行另一个,但是cmd挂起,不允许在cmd中写入第二个参数。当仅使用cmd手动运行批处理文件时,它不会这样做。所以我真的不明白问题是什么。我对Python非常陌生,因此欢迎您提出如何改进此脚本的建议:

import subprocess

# open commandline
subprocess.Popen([r"cmd"])

# Run every test 5 times.
# Wait for a single run to finish before running another one

for x in xrange(0, 5):
    subprocess.run(["batchfile.bat", "arg", "arg", "arg", "arg"])
    subprocess.Popen.wait(timeout=None)

for x in xrange(0, 5):
    subprocess.run(["batchfile.bat", "arg", "arg", "arg", "arg"])
    subprocess.Popen.wait(timeout=None)
编辑:
将subprocess.Popen()更改为subprocess.run()会挂起cmd dissapear,所以现在我只在等待进程完成后重新启动时遇到问题。更新了代码段。

如果您在中放置了一个相当长的超时,它是否有效,并且您从batchfile.bat中获得了期望的行为?请放置真实数据。您的脚本是否等待输入?它会打印什么东西吗?我尝试过使用1秒到2分钟的超时时间,看看是否有帮助,行为没有改变。数据是渲染中使用哪些文件的参数,所有这些都内置到批处理文件运行的应用程序中。因此,它基本上运行一个场景,根据参数的不同,持续时间从10秒到1分钟@cgte在这些情况下要做的是:从控制台运行命令。仅对一个脚本使用copy paste with shell=True选项,并使用check\u调用或check\u输出函数。看看它是否有效,然后像你一样使用正确的参数。为什么要使用r“”?如果进程输出了一些东西,也许你应该阅读它。文档建议您使用这些帮助程序功能。