我正在使用 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
