我将尝试在Python循环中执行多个批处理脚本。然而,这些批处理脚本包含“cmd /K”,因此不会“终止”(缺乏更好的词)。因此,Python调用第一个脚本并永远等待......以下是伪代码,可以了解我要做什么:
我的问题是:“有没有一种Pythonic的解决方案来获取控制台命令并恢复循环?”
编辑:我现在知道可以使用
import subprocess
params = [MYSCRIPT, os.curdir]
for level in range(10):
subprocess.call(params)
我的问题是:“有没有一种Pythonic的解决方案来获取控制台命令并恢复循环?”
编辑:我现在知道可以使用
Popen(params,shell=False,stdin=None,stdout=None,stderr=None,close_fds=True)
启动子进程并继续而不等待它们返回。 但是,这将几乎同时启动我的整个循环。 有没有一种方法可以等待子进程执行其任务,并在命中cmd /K
并变为空闲时返回。
cmd /K
,我有几个原因。最容易解释的是这些脚本与我的同事共享,我不想搞乱它们。 - snake_charmerDETACHED_PROCESS
跳过了整个批处理的执行。建议用于Popen
的其他选项,即shell=True, stdin=None, stdout=None, stderr=None, close_fds=True
非常有用。脚本不等待子进程终止。当我想要将10个脚本作为并行线程运行时,这将非常有用。 然而,我认为我正在寻找一种方法,在子进程执行其任务并命中cmd /K
并变为空闲状态时等待它返回。这可能吗?我应该编辑我的问题以反映这一点吗? - snake_charmer