Создавайте файлы .txt из файлов PDF, сохраняя имя таким же, как в формате PDF, используя python

У меня есть каталог, содержащий файлы PDF. Я написал код, который выполняет OCR, когда вы передаете имя файла объекту класса wand.image. Что я хочу сделать в настоящее время, так это перебрать каталог файлов PDF и создать текстовый файл OCR для каждого PDF-файла и сохранить его в каком-то каталоге. Код, который я написал до сих пор, выглядит следующим образом:

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 есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
188
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать глобус

Пример:

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», и это должно иметь место для всех файлов в каталоге. Я думаю, мне нужно разделить имена файлов, а затем присоединиться, может быть, есть идеи?

ajai biltu 31.05.2019 12:20

Кроме того, он просто создает один файл и перезаписывает его, а не сохраняет отдельные новые файлы .txt.

ajai biltu 31.05.2019 13:10

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

Arpita Sharma 03.06.2019 07:06

Другие вопросы по теме