如何将命令的输出复制到文件?

时间:2017-01-13 14:02:05

标签: python linux

这是长代码的一部分。

ExecutableName = 'op.test'
InterfaceName = 'TN3270'
command = ('./'+ExecutableName+' '+InterfaceName+' 2>&1 | tee -a  filename.txt')
os.system(command)
print command

最后,命令正确执行但输出显示在终端上,而不是复制在" filename.txt"和文件是空白的。我甚至尝试

command = ('./'+ExecutableName+' '+InterfaceName+' > filename.txt')

command = ('./'+ExecutableName+' '+InterfaceName+' 2>&1 > filename.txt')

但是print语句返回相同的内容:

./op.test TN3270
2>&1 | tee -a  filename.txt

我不知道为什么输出有2行而filename.txt是空白的? 请帮忙

1 个答案:

答案 0 :(得分:0)

您可以使用子流程。

这是一个例子。

#/usr/bin/python

import subprocess

p = subprocess.Popen('ps -ef >ProcessFile.txt', shell=True)
retval = p.wait()