子进程不会获取dxl脚本的输出

问题描述 投票:2回答:3

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

python subprocess ibm-doors
3个回答
0
投票

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


0
投票

我在这里很幸运,

print "Hello World"改为cout << "Hello World"

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


-1
投票

你的脚本有很多错误尝试这个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()

我喜欢它在你的系统上工作!

© www.soinside.com 2019 - 2024. All rights reserved.