我有一个可执行的jar将一些信息输出到屏幕上。我想从输出中捕获一个具体的数字,这是成本。例如,有一行“成本= 10”,我想在我运行jar文件N次时获得一个成本列表。我想用python脚本自动执行此过程,但由于我是Python新手,我不知道从Python脚本中从stdout中提取某些数据的最佳方法。做这样的工作最好的方法是什么?如何从Python中的可执行jar捕获信息?
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])
有堆栈溢出几个问题,这可以被视为重复,检查这些:获取输出](http://stackoverflow.com/questions/7604621/call-external-program-from-python-and-get-its-output)或[阅读输出](http://stackoverflow.com/questions/3804727/ python-subprocess-reading-output-from-subprocess) –