我执行jar文件会打印出终端上的输出,我不知道如何将jar文件输出作为json文件传递。
下面的代码只是打印终端上的jar文件输出
subprocess.Popen(['java', '-jar', '/home/myfolder/collect.jar'])
我想到下面但不知道从......开始
with open('collect.json', 'w') as fp:
xxxxxxxxxxx
希望有人可以进一步提出建议。谢谢。
这应该可以解决问题。如果查看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)
没有运行代码,但应该工作。
你可以尝试这样的事情
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?
我希望这有帮助。