我使用Python的子进程模块来运行dxl脚本。我的问题是,当我尝试捕获我的dxl脚本的输出(在此示例中为print语句或错误消息)时,它显示在命令提示符中,但是当我尝试使用stdout=subprocess.PIPE
或subprocess.check_output
捕获它时,它总是返回一个空字符串。有没有办法捕获输出或如何从门获取错误消息?重要的是你没有看到DOORS的GUI。
这是我的快速示例,显示了我的问题:
test.dxl
print "Hello World"
test.朋友
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 << ...而不是print。您可以覆盖此处显示的打印烫发DOORS Print Redirect Tutorial for print, cout and logfiles
我在这里很幸运,
将print "Hello World"
改为cout << "Hello World"
和userInfo = ' -user dude -password 1234 -d 127.0.0.1 -batch ".\\test.dxl > D:\output.txt"'
一样,在cmd提示符下,文本可以直接导出到文本文件中。
你的脚本有很多错误尝试这个link例如subprocess
试试这个:
import subprocess
import sys
path = "C:\\Program Files(x86)\\IBM\\Rational\\DOORS\\9.5\\bin\\doors.exe"
userInfo = "C:\\Program Files (x86)\\IBM\\Rational\\DOORS\\9.5\\bin\\doors.exe"
proc = subprocess.Popen([path,userInfo,"-W"])
proc.communicate()
我喜欢它在你的系统上工作!