用Python的子进程modu包装Java程序的问题

2024-10-01 07:42:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小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也不会抛出任何错误。谁能帮我解决这个问题吗?在


Tags: 命令行程序txtoutputstdout语法argsjava
1条回答
网友
1楼 · 发布于 2024-10-01 07:42:55

您需要使用stdout=output,其中output是一个打开的文件,用于写入'输出.txt'并从命令中删除输出重定向,或者将输出重定向保留在命令中,并使用不带stdout参数的shell=True

选项1:

^{1}$

选项2:

^{pr2}$

相关问题 更多 >