Skip to main content
 首页 » 编程设计

python之子进程不会接受 dxl 脚本的输出

2025年05月04日9cyq1162

我正在使用 Python 的子进程模块来运行 dxl 脚本。我的问题是当我 try catch 我的 dxl 脚本的输出(在本例中为打印语句或错误消息)时,它显示在命令提示符中,但是当我尝试使用 stdout=subprocess 捕获它时.PIPE 或 subprocess.check_output 它总是返回一个空字符串。有没有办法捕获输出或者我如何从 Doors 获取错误消息? 重要的是不要看到 DOORS 的 GUI。

这是显示我的问题的快速示例:

测试.dxl

print "Hello World" 

测试.py

import subprocess 
doorsPath = "C:\\Program Files (x86)\\IBM\\Rational\\DOORS\\9.5\\bin\\doors.exe" 
userInfo = ' -user dude -password 1234 -d 127.0.0.1 -batch ".\\test.dxl"' 
dxl = " -W" 
 
output = subprocess.check_output(doorsPath+dxl+userInfo) 
print(output) 

编辑:使用 Windows 7、DOORS 9.5 和 Python 2.7

请您参考如下方法:

我知道这篇文章很老了,但解决问题的方法是使用 cout << ... 而不是打印。您可以覆盖此处所示的打印烫发 DOORS Print Redirect Tutorial for print, cout and logfiles