本文主要是介绍PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1、问题描述
- 2、问题原因
- 3、问题解决
1、问题描述
今天在使用PDFPlumber
模块提取PDF文本时extract_text()
方法报错,报错内容如下:
Traceback (most recent call last):......File "F:\Python\...\site-packages\pdfminer\pdffont.py", line 1091, in __init__self.unicode_map = ttf.create_unicode_map()File "F:\Python\...\site-packages\pdfminer\pdffont.py", line 826, in create_unicode_mapassert False, str(("Unhandled", fmttype))
AssertionError: ('Unhandled', 6)
报错代码如下:
import pdfplumberwith pdfplumber.open(rf'F:\...\file.pdf') as pdf:for page in pdf.pages:print(page.extract_text())
2、问题原因
经查找原因,最终确定可能是PDF文件本身的原因,具体可见这篇文章:https://github.com/jsvine/pdfplumber/discussions/994?sort=new
ChatGPT则认这种错误是因为库内部遇到了某种它无法处理的情况,ChatGPT给出的解决方案如下:
1) 更新PDFPlumber
库
pip install --upgrade pdfplumber
2) 检查PDF文件
确认PDF文件没有损坏,并且是文本格式的PDF而不是扫描的图像
3) 使用其他方法
可以尝试使用extract_words()
或extract_tables()
等其他方法,这取决于你需要提取的内容类型
4) 捕获异常
添加异常处理,这样即使遇到错误也不会导致程序崩溃
try:text = page.extract_text()
except AssertionError as e:print(e)text = None
5) 尝试其他库
可以考虑使用其他PDF处理库,如PyPDF2或PyMuPDF等
在尝试了ChatGPT的一些建议后,确定可能是PDF本身的原因,因此考虑使用其他库
3、问题解决
经过尝试,最终发现PyMuPDF库可以解析使用:
import fitzwith fitz.open(rf'F:\...\file.pdf') as doc:for page in doc.pages():print(page.get_text())
看来是PDF本身的原因,我们的PDF可能已经损坏
这篇关于PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!