如何使用python将jar文件输出发送到json文件

问题描述 投票:-1回答:2

我执行jar文件会打印出终端上的输出,我不知道如何将jar文件输出作为json文件传递。

下面的代码只是打印终端上的jar文件输出

subprocess.Popen(['java', '-jar', '/home/myfolder/collect.jar'])

我想到下面但不知道从......开始

with open('collect.json', 'w') as fp:
    xxxxxxxxxxx

希望有人可以进一步提出建议。谢谢。

python json file jar
2个回答
0
投票

这应该可以解决问题。如果查看subprocess documentation,可以看到check_output运行带参数的命令,并将其输出作为字节字符串返回。

import multiprocessing as mp
import subprocess

command = "java -jar /home/myfolder/collect.jar"

def runCommand(q):
    commandOutput = subprocess.check_output(command.split()).decode("utf-8")
    q.put(commandOutput)

q = mp.Queue()
commandProcess = mp.Process(target=runCommand, args=(q, ))
commandProcess.start()
output = q.get()
print(output)
with open('collect.json', w) as fp: 
    fp.write(output)

没有运行代码,但应该工作。


0
投票

你可以尝试这样的事情

with open('collect.json','w') as fp :
  subprocess.Popen('java -jar .//home/myfolder/collect.jar',stdout=fp).wait()

有关更多信息,请参阅此问题How to get the output from .jar execution in python codes?

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.