如何从python脚本中启动批处理文件并从中分离

如何从python脚本中启动批处理文件并从中分离,python,windows,batch-file,Python,Windows,Batch File,我有一个python脚本,需要启动一个.bat文件。.bat文件无限期运行,理想情况下永远不会返回 在python脚本中运行外部可执行文件或.bat没有问题,但是我发现的所有实现都将它作为子级运行,并等待它返回 我可以运行一个外部脚本并与之分离,让它愉快地运行,并让python脚本继续运行吗 *编辑:*使用Popen在同一命令提示窗口中运行批处理文件-由于批处理文件从未返回,python应用程序无法继续运行。有没有办法在新的命令提示符窗口中运行批处理文件?您可以使用子流程: import sub

我有一个python脚本,需要启动一个
.bat
文件。
.bat
文件无限期运行,理想情况下永远不会返回

在python脚本中运行外部可执行文件或
.bat
没有问题,但是我发现的所有实现都将它作为子级运行,并等待它返回

我可以运行一个外部脚本并与之分离,让它愉快地运行,并让python脚本继续运行吗


*编辑:*使用
Popen
在同一命令提示窗口中运行批处理文件-由于批处理文件从未返回,python应用程序无法继续运行。有没有办法在新的命令提示符窗口中运行批处理文件?

您可以使用子流程:

import subprocess
subprocess.Popen(["mybatchfile.bat"])
这将启动批处理文件,不会等待完成。如果要验证是否已创建进程,可以运行:

p=subprocess.Popen(["mybatchfile.bat"])
if p.pid > 0:
   print "Process created with PID:", p.pid

从Python文档中:
在shell=True的Windows上,COMSPEC环境变量指定默认shell。在Windows上唯一需要指定shell=True的时间是希望执行的命令内置到shell中时(例如dir或copy)。运行批处理文件或基于控制台的可执行文件不需要shell=True。