【问题标题】:Generate .txt files from pdf files keeping the name same as in pdf using python使用 python 从 pdf 文件中生成 .txt 文件,名称与 pdf 中的名称相同
【发布时间】:2019-10-16 17:44:55
【问题描述】:

我有一个包含 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。我该怎么做呢

【问题讨论】:

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


    【解决方案1】:

    你可以使用 glob

    例子:

    import os
    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\" + os.path.split(file)[-1].split(".")[0] + ".txt", 'w') as f:
            f.write(extracted_text)
    

    【讨论】:

    • 谢谢,但我如何获得准确的文件名作为输出。目录中的示例文件如下所示:“000dbf9d-d53f-465f-a7ce-722722136fb7465.pdf”。我需要输出为“000dbf9d-d53f-465f-a7ce-722722136fb7465.txt”,这应该发生在目录中的所有文件上。我想我需要拆分文件名然后加入,知道吗?
    • 另外,它只是创建一个文件并覆盖它,而不是保存单个新的 .txt 文件
    • os.path.split(file) 会给你一个目录和文件列表,os.path.split(file)[-1] 会选择文件名,os.path.split( file)[-1].split(".") 将在句点(".") 上拆分文件名,os.path.split(file)[-1].split(".")[0] 将给出没有扩展名的文件名,os.path.split(file)[-1].split(".")[0] + ".txt" 将添加pdf文件名和.txt扩展名
    猜你喜欢
    • 2012-11-29
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多