[英]Pipe jar output to file in python
我正在使用一些東西從 python 運行一個 jar 文件
import subprocess
subprocess.call(['java', '-jar', 'tool.jar'])
然后我想將輸出保存到一個文件中,但問題是原始 java 代碼的輸出被發送到System.err.println(output)
。 我很想修改原始的 java 文件,但這不是一個選項。
如何將此輸出發送到文件? 我試過了:
subprocess.call(['java', '-jar', 'chattool.jar', '>', 'out.txt', '2','>','err.txt'])
也
subprocess.call(['java', '-jar', 'chattool.jar', '&>', 'test.txt'])
但沒有人重定向輸出。 可以在python中做到這一點嗎?
您可以使用Popen() 將stdout/stderr 管道傳輸到文件中:
_stdout = open('/tmp/chattool.stdout.txt', 'w')
_stderr = open('/tmp/chattool.stderr.txt', 'w')
cmd = subprocess.Popen('java -jar chattool.jar', stderr=_stderr, stdout=_stdout, cwd=_cwd, shell=True)
cmd.communicate()
我也能夠使用
import subprocess
with open('test.txt', 'w+') as f:
subprocess.run(['java', '-jar', 'tool.jar'], stderr=f)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.