2024-06-23 03:43:01 发布
网友
在Python脚本中,我尝试执行以下事件序列:
以下是我目前所掌握的情况:
subprocess.popen(['cmd','/c',r'programThatRuns.exe']) subprocess.wait() # ? subprocess.check_call()? kill? subprocess.popen(['cmd','/c',r'otherProgramThatRuns.exe'])
所以我想我真的被困在第二行了
你试过使用subprocess.call吗?在
subprocess.call
Python 2-Python 3
Run the command described by args. Wait for command to complete, then return the returncode attribute.
似乎是你想做的。只需运行第一个进程,检查文件是否存在,然后将文件传递给第二个进程使用。在
subprocess.check_call也适用于您正在尝试的操作,只是如果进程返回非零返回代码,它将引发异常,call将简单地返回返回代码。在
subprocess.check_call
call
我想你只需要:
subprocess.check_call(['programThatRuns.exe']) subprocess.check_call(['otherProgramThatRuns.exe'])
check_call函数将运行程序并等待它完成。如果失败(非0退出代码),它将抛出CalledProcessError异常。在
check_call
CalledProcessError
您通常不想通过cmd运行程序,只需直接运行它们。只有当程序不是可执行文件时,才需要强制使用cmd,例如对于dir这样的内置命令,.bat或{}文件,或者如果您想使用文件关联。在
cmd
dir
.bat
您必须在子进程上应用“wait”,即
o = subprocess.popen(['cmd','/c',r'programThatRuns.exe']) o.wait() subprocess.popen(['cmd','/c',r'otherProgramThatRuns.exe'])
或者使用check_call
你试过使用
subprocess.call
吗?在Python 2-Python 3
似乎是你想做的。只需运行第一个进程,检查文件是否存在,然后将文件传递给第二个进程使用。在
subprocess.check_call
也适用于您正在尝试的操作,只是如果进程返回非零返回代码,它将引发异常,call
将简单地返回返回代码。在我想你只需要:
check_call
函数将运行程序并等待它完成。如果失败(非0退出代码),它将抛出CalledProcessError
异常。在您通常不想通过}文件,或者如果您想使用文件关联。在
cmd
运行程序,只需直接运行它们。只有当程序不是可执行文件时,才需要强制使用cmd,例如对于dir
这样的内置命令,.bat
或{您必须在子进程上应用“wait”,即
或者使用
check_call
相关问题 更多 >
编程相关推荐