这是我在Python中执行jar文件的代码:
import os
os.system("java -jar xyz.jar")
我可以在终端上看到输出,但想将其存储在文件中。我怎么能这样做?
答案 0 :(得分:6)
使用subprocess.call,您可以将输出(stdout,stderr或两者)直接传送到文件中:
import subprocess
subprocess.call("java -jar xyz.jar", shell=True, stdout=open('outfile.txt', 'wt'), stderr=subprocess.STDOUT)
请注意,我添加了shell=True
参数,如果您的应用程序需要特定于shell的变量(例如Java所在的位置),则需要该参数。
另请注意,在上面的调用中,输出流按如下方式处理:
有关流配置的更多详细信息,请参见subprocess manual page。
答案 1 :(得分:0)
请勿使用os.system
,而是使用subprocess。
import subprocess
output = subprocess.check_output(["java", "-jar", "xyz.jar"])
file = open('file.txt', 'w+')
file.write(output)
file.close()