#python #multithreading #python-multithreading
#python #многопоточность #python-многопоточность
Вопрос:
def convertToImage(files):
for file in files:
#print(file)
images = convert_from_path(file,500,strict=False)
for i, image in enumerate(images):
fileName = file.split(".")
fileName = fileName[0]
#print(fileName)
fname = str(fileName) "Image_" str(i) ".jpg"
#print(fname)
image.save(fname, "JPEG")
if i == 0:
imageList.append(fname)
break
return imageList
def main():
files = (glob.glob(r"C:UsersABCDocumentsPDF Image*.pdf"))
print(files)
print(type(files))
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(convertToImage,files)
if __name__ == '__main__':
main()
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(convertToImage,files)
Эти строки, похоже, не работают, они не выдают ошибку, но вывод пустой.
Комментарии:
1. Почему эти строки должны выводить что-либо?
convertToImage
ничего не печатается, и результатexecutor.map
отбрасывается.2. Похоже, это проблема ввода-вывода. вместо процесса помогут потоки. Вы также прерываетесь в первом цикле как
i == 0
. Наконец, вы не получаете ответы обратно. вы должны назначить пул переменной.3. Говоря, что вывод пустой, я имел в виду, что PDF-файлы не конвертированы, я не вижу изображений в папке. @MisterMiyagi
4. @Prayson W. Daniel — спасибо