В моем проекте у меня есть файл jar (который был написан другим разработчиком) для копирования содержимого из pdf в текстовый файл. Используя концепцию многопоточности python, я попытался выполнить эту банку.Как выполнить файл jar в многопоточности python
После того, как я запустил этот скрипт, я могу видеть, что текстовые файлы создаются. но размер файла 0 КБ. Почему содержимое не копируется в этот файл. Однако я попытался запустить эту банку в командной строке, это работает так, как ожидалось. Может ли кто-нибудь сказать, пожалуйста, укажите решение?
from threading import Thread
import os
import sys
import time
import urllib2
from lxml import etree, html
import re
import Queue
import traceback
def createfile(x):
try:
file="test_"+str(x)
print "java -jar tika-app-1.1.jar -t --encoding=utf8 \"%s\" > \"%s\" "%("C:\\samplefile.pdf",file)
os.system("java -jar tika-app-1.1.jar -t --encoding=utf8 \"%s\" > \"%s\" "%("C:\tmp\samplefile.pdf",file))
except Exception,e:
print "excet",traceback.format_exc()
def process():
try:
result = Queue.Queue()
threads = [Thread(target=createfile, args=(x,)) for x in range(1,5)]
for t in threads:
t.start()
for t in threads:
t.join()
except:
print "exception",traceback.format_exc()
pass
end_time = time.time()
print "Estimate time", end_time - start_time
if __name__ == '__main__':
process()
Мой выход:
Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:393)
at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:101)
Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:393)
at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:101)
Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:393)
at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:101)
Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:393)
at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:101)
Estimate time 1.73799991608
Каков результат команды 'print'? –
Вы уверены, что вам не нужна обратная косая черта этих обратных косых черт? Возможно, используйте необработанную строку ... – NaeiKinDus
вывод команды print: java -jar tika-app-1.1.jar -t --encoding = utf8 "C: \ tmp \ sample.pdf"> "test_1" java -jar tika- app-1.1.jar -t --encoding = utf8 "C: \ tmp \ sample.pdf"> "test_2" java -jar tika-app-1.1.jar -t --encoding = utf8 "C: \ tmp \ sample .pdf " >" test_3 "java -jar tika-app-1.1.jar -t --encoding = utf8" C: \ tmp \ sample.pdf ">" test_4 " – fewtalks