python - 如何在读取多个文件时提供编码?
问题描述
我正在从一个文件夹中读取多个 csv 文件。在阅读我收到的多个文件时UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 21: invalid start byte
当我尝试逐个读取文件时,我提供了类型的编码 - "ISO-8859-1"
in pandas.read_csv(file_name, encoding
)。我的最终目标是将所有文件附加到单个数据框中。以下是我用于上述目的的代码。
import glob
files = glob.glob('/path_name/*.csv')
df = None
for i, f in enumerate (files):
if i == 0:
df = pd.read_csv(f)
df['fname'] = f
else:
tmp = read_csv(f)
tmp['fname'] = f
df = df.append(tmp)
df.head()
解决方案
尝试添加errors='ignore'
,然后一切正常,但您会丢失几个字符。
with open(path, encoding="utf8", errors='ignore') as f:
推荐阅读
- java - Android - 创建文件适用于 Android 5 但不适用于 Android 6 或更高版本
- c# - 从另一个类更改表单上的标签
- wordpress - 我可以在代码中为我的自定义帖子类型设置注册的自定义分类吗?
- ios - 在 iOS 设备上以编程方式访问我的应用程序的 Apple 崩溃日志
- javascript - POST 与 Postman 一起工作,但不是通过 JavaScript 中的 fetch
- python - OpenCV 找不到但可以导入
- flutter - RotationY Matrix4 未完全旋转
- sql - SQL Server 2008:加入 3 个表并从子表中针对每个父记录选择最后输入的记录
- java - 动态查询不起作用 Spring Boot JPA
- ios - 如果未在 viewDidLoad 方法中设置 UISearchController 则不显示