【发布时间】:2014-05-20 14:08:38
【问题描述】:
我正在尝试读取以“latin small letter thorn”http://www.fileformat.info/info/unicode/char/fe/index.htm 作为分隔符的文件。我正在尝试使用 csv 文件 https://docs.python.org/3.0/library/csv.html API。
我尝试了各种方法来表示源代码中的分隔符,但总是出错:
dialect = csv.Sniffer().sniff(f.readline(), delimiters='\xc3\xbe')
print dialect.delimiter
错误: 嗅探中的文件“/usr/lib64/python2.6/csv.py”,第 180 行 引发错误,“无法确定分隔符” _csv.Error: 无法确定分隔符
如何在python的csv API中将这样的字符表示为分隔符?
提前致谢!
【问题讨论】:
-
如果可以,请使用 Python 3——它有更好的 unicode 支持。然后你可以把“小刺”复制到你的源代码中,一切都会好起来的。在 Python 2.6 中,您需要确保在文件顶部设置
~*~coding: utf-8~*~并使用u''unicode 字符串等。另外,请注意您的 Python 版本。您正在链接到 Python 3 文档,但您的错误是 Python 2.6! -
不幸的是我不能使用 python 3 :(。我尝试通过 # -- coding: utf-8 -- 设置编码并将分隔符输入为 delimiters=u'\ u00FE',但这也不能解决问题:(
-
似乎极不可能使用 Unicode 多字节字母作为 CSV 分隔符。你确定文件是 UTF-8 吗?
-
你的问题让我想起了这张图:media-cache-cd0.pinimg.com/736x/9b/e3/94/… 如果这是一次性任务,那么任何事情都是合法的 - 你不妨在文字处理器中打开它并将所有的
þ更改为“正常”CR。否则,您是否尝试过ord('þ')和可能的chr(ord('þ'))来检查要查找您的系统的字符?