使用python从pdf文件中生成名称与pdf相同的.txt文件

时间:2019-05-31 05:03:52

标签: python loops ocr file-handling file-generation

我有一个包含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作为输出。我该怎么做

1 个答案:

答案 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)