以上代码报PyPDF2.errors.DeprecationError: PdfFileReader is deprecated and was removed in PyPDF2 3.0.0. Use PdfReader instead.错误,请帮我修复并提供完整代码
时间: 2024-01-06 19:12:56 浏览: 83
对不起,我犯了一个错误。确实在 PyPDF2 3.0.0 中,`PdfFileReader` 已被弃用,应该使用 `PdfReader`。以下是修改后的代码:
```python
import os
import re
import fitz
# 定义 PDF 文件路径和目标文件夹
pdf_folder = 'C:/Users/xiejin/Desktop/hd'
output_folder = 'C:/Users/xiejin/Desktop/new_hd'
# 遍历文件夹中的所有 PDF 文件
for filename in os.listdir(pdf_folder):
if filename.endswith('.pdf'):
# 打开 PDF 文件
pdf_file = open(os.path.join(pdf_folder, filename), 'rb')
pdf_reader = fitz.open(pdf_file)
# 提取第一页的文本内容
first_page = pdf_reader[0]
text_content = first_page.get_text()
# 匹配文本内容中的数字和字母
name_match = re.search(r'\w+', text_content)
if name_match:
new_name = name_match.group() + '_' + filename
new_path = os.path.join(output_folder, new_name)
# 重命名文件
os.rename(os.path.join(pdf_folder, filename), new_path)
print(f'Renamed {filename} to {new_name}')
pdf_file.close()
```
这个代码使用了 `fitz` 模块来代替 `PyPDF2`,因为 `PyPDF2` 已经不再维护了。`fitz` 是一个开源的 PDF 处理库,可以用来读取和编辑 PDF 文件。另外,这个代码也对提取文本内容的方式进行了修改。
阅读全文