2

我使用 Python 的 subprocess 模块来运行 dxl 脚本。我的问题是当我尝试捕获我的 dxl 脚本的输出(在此示例中为打印语句或错误消息)时,它显示在命令提示符中,但是当我尝试捕获它时stdout=subprocess.PIPEsubprocess.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

4

3 回答 3

0

我在这里感到很幸运,

更改print "Hello World"cout << "Hello World"

userInfo = ' -user dude -password 1234 -d 127.0.0.1 -batch ".\\test.dxl > D:\output.txt"',就像在 cmd promt 中一样,文本可以直接导出到文本文件中。

于 2019-02-25T06:40:07.377 回答
0

我知道这篇文章已经很老了,但问题的解决方案是使用 cout << ... 而不是 print。您可以覆盖打印权限,如下所示 DOORS Print Redirect Tutorial for print、cout 和 logfiles

于 2017-06-02T08:23:48.260 回答
-1

你的脚本有很多错误试试这个链接,例如子进程

试试这个:

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()

我希望它在你的系统上工作!

于 2015-10-07T14:28:47.693 回答