如何使用tesseract python 3读取目录中的所有pdf文件并转换为文本文件?
下面的代码用于读取一个pdf文件并转换为文本文件。
但是我想读取目录中的所有pdf文件,并使用tesseract python 3转换为文本文件
from PIL import Image
import pytesseract
import sys
from pdf2image import convert_from_path
import os
pdf_filename = "pdffile_name.pdf"
txt_filename = "text_file_created.txt"
def tesseract(pdf_filename,txt_filename):
PDF_file = pdf_filename
pages = convert_from_path(PDF_file, 500)
image_counter = 1
for page in pages:
pdf_filename = "page_"+str(image_counter)+".jpg"
page.save(pdf_filename, 'JPEG')
image_counter = image_counter + 1
filelimit = image_counter-1
outfile = txt_filename
f = open(outfile, "a",encoding = "utf-8")
for i in range(1, filelimit + 1):
pdf_filename = "page_"+str(i)+".jpg"
text = str(((pytesseract.image_to_string(Image.open(pdf_filename)))))
text = text.replace('-\n', '')
f.write(text)
f.close()
f1 = open(outfile, "r",encoding = "utf-8")
text_list = f1.readlines()
return text_list
tesseract(pdf_filename,txt_filename)`enter code here`
我有用于读取目录中pdf文件的代码,但我不知道将此代码与上述代码结合起来
def readfiles():
os.chdir(path)
pdfs = []
for file_list in glob.glob("*.pdf"):
print(file_list)
pdfs.append(file_list)
readfiles()
答案 0 :(得分:0)
使用以下代码段将变量pdf_filename
转换为列表:
import glob
pdf_filename = [f for f in glob.glob("your_preferred_path/*.pdf")]
这将为您提供所有想要的pdf文件,并将其存储在列表中。
或者只是使用此处发布的任何方法:
How do I list all files of a directory?
执行完此操作后,您现在将获得一个pdf文件列表。
现在遍历pdf列表,一次一次,这将为您提供测试文件列表。
您可以使用类似以下代码段的方式:
for one_pdf in pdf_filename:
#* your code to convert the files *#
希望这会有所帮助。