在Python中读取包含未定义字符的csv文件

时间:2018-01-30 13:40:20

标签: python csv text utf-8 ascii

我正在使用以下代码在我的Windows机器上读取CSV文件(ANSI):

import csv
with open('ttest.dat') as csvDataFile:
    csvReader = csv.reader(csvDataFile, delimiter="\t")
    for i in csvReader:
        print(i)

但是,我收到错误:UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 4: character maps to <undefined>

在Notepad ++中检查文件后(在记事本中将其转换为UTF-8编码后),我看到出现以下内容:

enter image description here

似乎与hello相邻的这些字符导致了问题。当我手动删除它们时,可以读取文件。

有没有办法在Python中加载文件,同时明确告诉它忽略这些奇怪的字符?或者,是否有一种方法可以自动从这些字符中删除文本?我的文件相当大,所以我手动查看每一行是不现实的。

注意:在R中,我可以使用read.csv

读取文件而不会出现任何问题

1 个答案:

答案 0 :(得分:1)

with open('ttest.dat', encoding="utf8") as csvDataFile:

这将使用UTF-8编码打开文件。