我正在尝试从dell(它的命令行工具)运行命令racadam到subprocess.popen。
但我无法收回标准或者stderr。这就是我在做的事。
prog = "C:\Program Files\Dell\SysMgt\\rac5\\racadm.exe"
pp = subprocess.Popen(prog, shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
pp.communicate()
print pp.communicate()
print pp.communicate()[0]
print pp.communicate()[1]
print pp.stdout.readlines()
print pp.stderr.readlines()
out, err = pp.communicate()
print out
print err
我得到了
('', '')
[]
[]
什么时候应该用什么参数打印帮助。
有趣的是,我可以看到程序终端打开,打印一些行然后关闭超级超快。所以我知道程序正在运行我只是无法将信息恢复到python =(我可能会错过一些步骤吗?还是有隐藏的技巧? 谢谢你们。答案 0 :(得分:0)
在运行代码时,不确定您是否实际编写了tdout
而不是stdout
试试这个
pp = subprocess.Popen(prog, shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
out, err = pp.communicate()
if pp.returncode == 0:
final = out
else:
final = err
print "Final output/Error is "+final