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