【问题标题】:Reading csv-file in Python containing undefined characters在 Python 中读取包含未定义字符的 csv 文件
【发布时间】:2018-01-30 13:40:19
【问题描述】:

我正在使用以下代码在我的 Windows 机器上用 Python 读取 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 编码后)我看到出现以下内容:

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

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

注意:在 R 中,我可以使用 read.csv 毫无问题地读取文件

【问题讨论】:

    标签: python csv text utf-8 ascii


    【解决方案1】:
    with open('ttest.dat', encoding="utf8") as csvDataFile:
    

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

    【讨论】:

    • 这规避了奇数字符的问题,但现在我无法解析包含字母 æ、ø 和 å 的文本
    • 那是挪威字母吗?试试iso-8859-1。否则,请查看有关该主题的一些教程。你一定会找到一些有用的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2023-03-05
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多