Python csv阅读器多字符引号?

Python csv阅读器多字符引号?,python,csv,Python,Csv,我处理的是Concordance加载文件,必须对其进行编辑,因此我使用Python进行编辑。这些列由pilcrow char¨分隔,并以þ作为引号 问题是quotechar,python中的csv模块只接受一个字符引号(当我编写csv文件时没有问题) 问:如果引号是多字符的,如何读取Python中的CSV文件 CSV fle的示例: þcol_1þ¶þcol_2þ¶þcol_3þ¶þcol_4þ Concordance文件格式是8位编码的,¨和þ字符实际上是用拉丁语1编码的。这意味着它们分别被

我处理的是Concordance加载文件,必须对其进行编辑,因此我使用Python进行编辑。这些列由pilcrow char
¨
分隔,并以
þ
作为引号

问题是quotechar,python中的csv模块只接受一个字符引号(当我编写csv文件时没有问题)

问:如果引号是多字符的,如何读取Python中的CSV文件

CSV fle的示例:

þcol_1þ¶þcol_2þ¶þcol_3þ¶þcol_4þ

Concordance文件格式是8位编码的,
¨
þ
字符实际上是用拉丁语1编码的。这意味着它们分别被编码为二进制值0xB6和0xFE

Python 2
csv
模块非常愉快地接受这些字节:

csv.reader(fileobj, delimiter='\xb6', quotechar='\xfe')
与往常一样,对于
csv
模块,确保以二进制模式打开文件,将换行处理留给模块


在Python3中,使用
newline=''
encoding='latin1'
以文本模式打开文件,并使用上面的
\xhh
转义符或实际字符,因此
分隔符='''',quotechar='þ'
可以升级到Python3吗?
csv
模块在2和3中使用
str
类型,在Python 3中,由于完全支持Unicode,
þ
只是一个代码点。实际上,此文件使用的是什么编码?只有当文件使用多字节编码(UTF-8之类的变量或UTF-16之类的固定变量)时,Python 2才会出现问题。如果这是在CP1252这样的8位编码中完成的,那么您只需要使用
'\xb6'
'\xfe'
。Python 3是最干净的解决方案。@AnttiHaapala:实际上,这取决于编码。LexisNexis(Concordance出版社)称之为“ASCII 254”,这是毫无意义的专利,因为ASCII只指向127,但这确实表明这是一个8位字符。@user3557405:您的源代码可能是,但文件编码是拉丁-1。至少我对格式的所有研究都告诉我这一点。