【发布时间】:2016-09-14 15:23:54
【问题描述】:
我正在处理 Concordance 加载文件并且必须对其进行编辑,因此我正在使用 Python。列由 pilcrow 字符 ¶ 分隔,并以 þ 作为引号字符。
问题是quotechar,python中的csv模块只接受单字符引号(我写csv文件时没有问题)。
问题:如何在 Python 中读取引号字符为多字符的 CSV 文件?
CSV 文件示例:
þcol_1þ¶þcol_2þ¶þcol_3þ¶þcol_4þ
【问题讨论】:
-
你能升级到 Python 3 吗?
csv模块在 2 和 3 中使用str类型,而在 Python 3 中,完全支持 Unicode,þ只是一个代码点。 -
其实这个文件用的是什么encoding?只有当文件使用多字节编码(像 UTF-8 这样的变量或像 UTF-16 这样的固定)时,Python 2 才会在这里出现问题。如果这是在像 CP1252 这样的 8 位编码 中完成的,那么您只需要使用
'\xb6'和'\xfe'。 -
Python 3 是最干净的解决方案。
-
@AnttiHaapala:实际上,这取决于编码。 LexisNexis(Concordance 的出版商)称其为“ASCII 254”,这是一种专利废话,因为 ASCII 仅达到 127,但这确实表明这是一个 8 位字符。
-
@user3557405:您的 source 编码可能是,但 file 编码是 Latin-1。至少这是我对格式的所有研究告诉我的。