我有一个包含pdf文件的目录。当您将文件名传递给wand.image类的对象时,我已经编写了执行OCR的代码。我目前要做的是遍历pdf文件目录,并为每个pdf生成一个OCR'd txt文件,并将其保存在某个目录中。我到目前为止编写的代码如下:
import io
from PIL import Image
import pytesseract
from wand.image import Image as wi
pdf = wi(filename = r"D:\files\aba7d525-04b8-4474-a40d-e94f9656ed42.pdf", resolution = 300)
pdfImg = pdf.convert('jpeg')
imgBlobs = []
for img in pdfImg.sequence:
page = wi(image = img)
imgBlobs.append(page.make_blob('jpeg'))
extracted_text = []
for imgBlob in imgBlobs:
im = Image.open(io.BytesIO(imgBlob))
text = pytesseract.image_to_string(im, lang = 'eng')
extracted_text.append(text)
print(extracted_text[0])
问题是,如果您看到我的代码(“ pdf = ..”),我已经在代码中对文件名进行了硬编码,但是我需要在此处传递目录,以便该目录中的所有文件都可以进行OCR而且我还需要将所有文件及其文件名以.pdf替换为.txt作为输出。我该怎么做
答案 0 :(得分:0)
您可以使用glob
示例:
import glob
from wand.image import Image as wi
files = glob.glob("D:\files\*")
for file in files:
pdf = wi(filename = file, resolution = 300)
# write your code
with open("D:\extracted_files\"+"file1.txt", 'w') as f:
f.write(extracted_text)