首页 > 解决方案 > 如何在读取多个文件时提供编码?

问题描述

我正在从一个文件夹中读取多个 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()

标签: pythonpandas

解决方案


尝试添加errors='ignore',然后一切正常,但您会丢失几个字符。

with open(path, encoding="utf8", errors='ignore') as f:

推荐阅读