我有一个小java程序,可以使用以下语法从命令行运行:
java -jar EXEV.jar -s:myfile
这个java程序将一些数据打印到屏幕上,我希望将stdout
重定向到一个名为output.txt
的文件中。在
from subprocess import Popen, PIPE
def wrapper(*args):
process = Popen(list(args), stdout=PIPE)
process.communicate()[0]
return process
x = wrapper('java', '-jar', 'EXEV.jar', '-s:myfile', '>', 'output.txt')
当我运行上面的代码时,output.txt
永远不会被写入,Python也不会抛出任何错误。谁能帮我解决这个问题吗?在
您需要使用
stdout=output
,其中output
是一个打开的文件,用于写入'输出.txt'并从命令中删除输出重定向,或者将输出重定向保留在命令中,并使用不带stdout
参数的shell=True
:选项1:
^{1}$选项2:
^{pr2}$相关问题 更多 >
编程相关推荐