【发布时间】:2019-06-05 03:05:29
【问题描述】:
我正在尝试从文件夹中读取所有 PDF 文件以使用正则表达式查找数字。经检查,PDF 的字符集为“UTF-8”。
抛出此错误:
'utf-8' 编解码器无法解码位置 10 中的字节 0xe2:无效 继续字节
尝试以二进制模式读取, 尝试了 Latin-1 编码,但它显示了所有特殊字符,因此搜索中没有显示任何内容。
import os
import re
import pandas as pd
download_file_path = "C:\\Users\\...\\..\\"
for file_name in os.listdir(download_file_path):
try:
with open(download_file_path + file_name, 'r',encoding="UTF-8") as f:
s = f.read()
re_api = re.compile("API No\.\:\n(.*)")
api = re_api.search(s).group(1).split('"')[0].strip()
print(api)
except Exception as e:
print(e)
希望从 PDF 文件中找到 API 编号
【问题讨论】:
-
试试
encoding="ISO-8859-1" -
'NoneType' 对象没有属性 'group',我尝试时收到此错误
-
“经检查,PDF 的字符集是 'UTF-8'。” - 不,pdf 是二进制格式,通常包含大量压缩数据。甚至其中未压缩的字符串数据也可能以混合编码出现,几乎没有 utf-8。