TypeError: sequence item 0: expected str instance, NoneType found解决办法
在学习利用pdfplumber读取PDF文本内容时,提示出现TypeError: sequence item 0: expected str instance, NoneType found错误。
分析主要是在拼接字符串.join()时出现了非str类型的None。
打开PDF文件查看后发现第一页是一个类似图片格式的页面,无法提取文字,所以返回了一个None值。
import pdfplumber
pdf = pdfplumber.open('C:\\募集说明书.PDF')
pages = pdf.pages
text_all = []
for page in pages: # 遍历pages中每一页的信息
text = page.extract_text()# 提取当页的文本内容
text_all.append(text) # 通过列表.append()方法汇总每一页内容
text_all = ''.join(text_all) # 把列表转换成字符串
print(text_all)
pdf.close()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-22-ca93803ba76b> in <module>
6 text = page.extract_text()# 提取当页的文本内容
7 text_all.append(text) # 通过列表.append()方法汇总每一页内容
----> 8 text_all = ''.join(text_all) # 把列表转换成字符串
9 print(text_all)
10 pdf.close()
TypeError: sequence item 0: expected str instance, NoneType found
解决思路:
在append()每一页内容时,增加if 和 continue语句,如果是None值则不执行append()
代码如下:
import pdfplumber
pdf = pdfplumber.open('C:\\募集说明书.PDF')
pages = pdf.pages
text_all = []
for page in pages:
text = page.extract_text()
if text == None:
continue
text_all.append(text)
text_all = ''.join(text_all)
text_all = text_all.replace('\n','')
print(text_all)
pdf.close()
成功解决
版权声明:本文为m0_60465490原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。