Обновите код Python — в библиотеке PyPDF2 есть устаревшие объекты, используемые в коде Python.Python

Программы на Python
Ответить
Anonymous
 Обновите код Python — в библиотеке PyPDF2 есть устаревшие объекты, используемые в коде Python.

Сообщение Anonymous »

Я смог использовать код Python в ОС на основе Linux, но когда я попытался запустить его тот же код в ОС на основе Windows, у меня появились сообщения об отсеках. < /p>
Мой вопрос: , как можно обновить код, чтобы преодолеть проблемы снижения? >
< /ol>

Код: Выделить всё

import PyPDF2
import openpyxl

def pdf_to_text(pdf_file):
text = ""
with open(pdf_file, "rb") as file:
pdf_reader = PyPDF2.PdfFileReader(file)
for page_num in range(pdf_reader.getNumPages()):
page = pdf_reader.getPage(page_num)
text += page.extractText()
return text

def save_text_to_excel(text, excel_file):
workbook = openpyxl.Workbook()
sheet = workbook.active
lines = text.split("\n")
for row_num, line in enumerate(lines, 1):
sheet.cell(row=row_num, column=1, value=line)
workbook.save(excel_file)

if __name__ == "__main__":
pdf_file = "PDF_File_name.pdf"
excel_file = "output.xlsx"

pdf_text = pdf_to_text(pdf_file)
save_text_to_excel(pdf_text, excel_file)
output: " pypdf2.errors.deprecationError: pdffilereader устарел и был удален в PYPDF2 3.0.0. Вместо этого PDFreader. "< /p>
  • Поэтому я обновил этот код Python: < /li>
    < /ol>

    Код: Выделить всё

    import PyPDF2
    import openpyxl
    
    def pdf_to_text(pdf_file):
    text = ""
    with open(pdf_file, "rb") as file:
    pdf_reader = PyPDF2.PdfReader(file)
    for page_num in range(pdf_reader.getNumPages()):
    page = pdf_reader.getPage(page_num)
    text += page.extractText()
    return text
    
    def save_text_to_excel(text, excel_file):
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    lines = text.split("\n")
    for row_num, line in enumerate(lines, 1):
    sheet.cell(row=row_num, column=1, value=line)
    workbook.save(excel_file)
    
    if __name__ == "__main__":
    pdf_file = "PDF_File_name.pdf"
    excel_file = "output.xlsx"
    
    pdf_text = pdf_to_text(pdf_file)
    save_text_to_excel(pdf_text, excel_file)
    
    output: " pypdf2.errors.deprecationError: reader.getNumpages снижается и удаляется в PYPDF2 3.0.0. Используйте len (reader.pages ) вместо. en/andal/user/migration-1-to -2.html, который утверждает, для обновления:
reader.getnumpages ()/reader.numpages ➔ len (reader.pages) < /p>

Код: Выделить всё

import PyPDF2
import openpyxl

def pdf_to_text(pdf_file):
text = ""
with open(pdf_file, "rb") as file:
pdf_reader = PyPDF2.PdfReader(file)
for page_num in range(pdf_reader.len(reader.pages)):
page = pdf_reader.getPage(page_num)
text += page.extractText()
return text

def save_text_to_excel(text, excel_file):
workbook = openpyxl.Workbook()
sheet = workbook.active
lines = text.split("\n")
for row_num, line in enumerate(lines, 1):
sheet.cell(row=row_num, column=1, value=line)
workbook.save(excel_file)

if __name__ == "__main__":
pdf_file = "PDF_File_name.pdf"
excel_file = "output.xlsx"

pdf_text = pdf_to_text(pdf_file)
save_text_to_excel(pdf_text, excel_file)
output: " attributeerror: 'pdfreader' объект не имеет атрибута 'len' "
< ol start = "4">
Я обновил код на основе комментариев Abdul Aziz Barkat ':
typo: pdf_reader.len (reader.pages) Сравните с Len (reader.pages ), как указано в сообщении об исчезновении ... вы должны написать LEN (pdf_reader.pages), Len - это встроенная функция в Python. < /li>
< /ol>

Код: Выделить всё

import PyPDF2
import openpyxl

def pdf_to_text(pdf_file):
text = ""
with open(pdf_file, "rb") as file:
pdf_reader = PyPDF2.PdfReader(file)
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.getPage(page_num)
text += page.extractText()
return text

def save_text_to_excel(text, excel_file):
workbook = openpyxl.Workbook()
sheet = workbook.active
lines = text.split("\n")
for row_num, line in enumerate(lines, 1):
sheet.cell(row=row_num, column=1, value=line)
workbook.save(excel_file)

if __name__ == "__main__":
pdf_file = "computers.pdf"
excel_file = "output.xlsx"

pdf_text = pdf_to_text(pdf_file)
save_text_to_excel(pdf_text, excel_file)
Вывод: "PyPDF2.errors.DeprecationError: reader.getPage(pageNumber) устарел и был удален в PyPDF2 3.0.0. Используйте Reader. вместо этого страницы[page_number]."

Подробнее здесь: https://stackoverflow.com/questions/769 ... -python-co
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»