gpt4 book ai didi

java - 如何从Python中的可执行jar中捕获信息?

转载 作者:行者123 更新时间:2023-11-30 04:32:14 25 4
gpt4 key购买 nike

我有一个可执行 jar,它可以将一些信息打印到屏幕上。我想从输出中捕获一个特定的数字,即成本。例如,有一行“Cost = 10”,我希望在运行 jar 文件 N 次时获得一个成本列表。我想使用 python 脚本自动执行此过程,但由于我是 Python 新手,我不知道在 Python 脚本中从 stdout 提取一些数据的最佳方法。完成此类任务的最佳方法是什么?

def wrapper(*args):
process = Popen(list(args), stdout=subprocess.PIPE)
process.communicate()
return process

linkFileList = [ join(linkDir,f) for f in listdir(linkDir) if isfile(join(linkDir,f)) ]
nodeFileList = [ join(nodeDir,f) for f in listdir(nodeDir) if isfile(join(nodeDir,f)) ]
pairFileList = [ join(pairDir,f) for f in listdir(pairDir) if isfile(join(pairDir,f)) ]
size = len(linkFileList)
for count in range(0, size):
x = wrapper('java', '-jar', 'C:\\Users\\fatma\\Documents\\workspace\\HeuristicRunnable.jar', nodeFileList[count], linkFileList[count], pairFileList[count])

最佳答案

你已经很接近了。您想要这样做:

def wrapper(*args):
process = Popen(list(args), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
return stdout, stderr

变量 stdoutstderr 将是与 jar 中 stdout 和 stderr 的输出相对应的简单字符串。我真的不认为一旦使用了 process 变量就可以对其执行任何操作,因此返回它确实没有多大意义。

(我还包含了获取 stderr 所需的代码,以防万一这也被证明是有用的)

关于java - 如何从Python中的可执行jar中捕获信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14366352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com