如何使用不均匀的报价来处理.tsv?

时间:2014-11-14 00:12:22

标签: python csv

我是使用Python的csv模块的新手,并且由于缺少转义字符和奇怪的数据,我一直遇到无法解析的问题。以下是两个导致它抓取多行并中断(制表符分隔值)的示例:

  

B 2885192“一些输入

     

L 30019“

两个示例都会破坏它并获得“无转义字符集”错误。这是我用来阅读它的主线:

with open (INFO_FILE, "rt", encoding = "latin1") as info:
    info = csv.reader (info, delimiter = '\t')

我找不到可靠的答案,也无法弄清楚在文档中处理此问题的确切方法。我确信它就像修改csv.writer的选项一样简单。我应该改变什么才能接受那些直接字符串,而不是试图在这些情况下找到最终引号?

1 个答案:

答案 0 :(得分:3)

您没有为您的读者指定quoting=csv.QUOTE_NONE。尝试

with open (INFO_FILE, "rt", encoding = "latin1") as info:
    info = csv.reader (info, delimiter = '\t', quoting=csv.QUOTE_NONE)
    for line in info:
        print(line)

输出:

['B', '2885192', '"Some input']
[]
['L', '30019', '"']