Как извлечь текст с помощью PyPDF2 без подробного вывода

Я хочу скопировать содержимое из PDF в текстовый файл. Я могу извлечь текст, используя следующий код:

from PyPDF2 import PdfReader
infile = open("input.pdf", 'rb')
reader = PdfReader(infile)
for i in reader.pages:
    text = i.extract_text()
    ...

Однако мне не нужно, чтобы текст выводился на терминал. Есть ли способ указать методу, чтобы он не выводился на терминал? В документации к методу ничего не нашел.

Обновление: глупый я, я печатал PageObject позже в коде. Это заставило меня подумать, что результат исходит от метода extract_text().

PyPDF2 устарел. Используйте pypdf.

Martin Thoma 02.04.2023 15:24
Почему в 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
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Код, который вы опубликовали, не выводит результаты на терминал для меня в Windows без выполнения дополнительного шага:

print(text)

Поэтому я предполагаю, что подробный вывод происходит где-то за последней строкой вашего примера кода:

text = i.extract_text()

При этом PyPDF2 закрывается, и разработка продолжается как PyPDF, новый пакет Python (https://pypi.org/project/pypdf/). Я бы предложил попробовать новый пакет и проверить, сохраняется ли подробный вывод.

Вот принятый код для нового пакета, основанный на вашем исходном:

pip install pypdf

.

from pypdf import PdfReader

# Read the file utilizing the PyPDF library.
reader = PdfReader("input.pdf")

# Obtain the total number of pages as an integer
pages = len(reader.pages)

# Extract the text from each page
for page, _ in enumerate(range(pages)):
    read = reader.pages[page]
    text = read.extract_text()

Я понял, что печатал PageObject где-то еще в коде.

user1720897 02.04.2023 15:29

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