@暂停.bat文件会阻止subprocess.Popen完成

2024-09-28 19:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用以下代码(Win10 btw)将一个简单的.bat脚本的输出通过管道传输到我的python脚本:

import subprocess

p = subprocess.Popen(C:\Users\Public\gamess-64\get-version-names.bat), stdout=subprocess.PIPE)
output = p.communicate()
print(output)

问题是脚本看起来像这样:

::
::   Mar   08, 2015 :: Sarom Leang :: get-version-names.bat
::
:: Looks in current directory for gamess.*.exe and outputs the
:: version names to be used in 'rungms.bat' or 'rungms-serial.bat'
::
@setlocal enabledelayedexpansion
@echo ------                        -------
@echo Binary                        Version
@echo ======                        =======
@echo.
@for %%f in (gamess.*.exe) do @(
@set temp=%%~nf
@set version=!temp:gamess.=!
@echo %%f       !version!)
@echo.
@pause

@pause阻止我的py脚本通过subprocess.pOpen(),因此我想知道如何获得stdout而不让脚本在其轨道中停止(并且不只是删除@pause)


Tags: inecho脚本foroutputgetnamesversion