Java .jar在python中的集成
我正在python程序中访问一个java jar以获取图像的元数据。我的文件夹中有大约90000个图像。对于每个图像,我需要使用jar并从中获取数据。目前我已经编写了如下代码,完全可以处理10个图像。但是当我有很多图像时,速度非常慢。我的代码如下所示Java .jar在python中的集成,java,python,jar,integration,Java,Python,Jar,Integration,我正在python程序中访问一个java jar以获取图像的元数据。我的文件夹中有大约90000个图像。对于每个图像,我需要使用jar并从中获取数据。目前我已经编写了如下代码,完全可以处理10个图像。但是当我有很多图像时,速度非常慢。我的代码如下所示 def jarWrapper(*args): process = Popen(['java', '-jar']+list(args), stdout=PIPE, stderr=PIPE) ret = [] while pro
def jarWrapper(*args):
process = Popen(['java', '-jar']+list(args), stdout=PIPE, stderr=PIPE)
ret = []
while process.poll() is None:
line = process.stdout.readline()
if line != '' and line.endswith('\n'):
ret.append(line[:-1])
stdout, stderr = process.communicate()
ret += stdout.split('\n')
if stderr != '':
ret += stderr.split('\n')
ret.remove('')
return re
def main():
listofkeys =['Content-Length','Image Height','Image Width']
hashvaludict ={}
for dirpath, dirs, files in os.walk('/Users/akira/Documents/LiClipseWorkspace/cnf/duplicate_image'):
files = [fi for fi in files if not fi.startswith(".DS_Store")]
files = sorted(files)
for filename in files:
listofcontentvalue =[]
args = ['/Users/akira/tika-app-1.10.jar','-m' ]
args.append(os.path.join(dirpath, filename))
#print args
result = jarWrapper(*args)
main()
请给我建议一种方法,让这个过程更快。你分析过代码了吗?也许你应该(如果可能的话)用java做所有的事情,你会“赢得”java应用程序“预热”,我只需要用python来做……或者使用PIL/Pillow()如果这能让你得到你想要的信息,我只需要使用这个jar来获取元数据。还有其他方法从python脚本执行jar吗?