2014-11-14 28 views
1

我是使用Python的csv模块的新手,并且由于缺少转义字符和奇怪的数据,我一直遇到无法解析的问题。下面是两个例子,导致它抓住多行和断裂(制表符分隔值):如何处理带有不均匀引号的.tsv文件?

乙2885192“一些输入

大号30019”

两个示例打破它并获得“没有转义字符集”错误。下面是我用的主线在阅读它:

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

我不能找到一个坚实的答案并不能找出文档中处理这个具体的方式。我相信这和修改csv.writer的选项一样简单。我应该改变以接受那些直接的字符串,而不是在这些情况下尝试找到最终引号?

+2

您发布的代码是编写一个CSV文件,不是读书之一。 – chepner

+0

CRAP,抓住错误的一行,在一分钟内编辑; – Befall

+0

@chepner固定,很好的捕获。 – Befall

回答

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', '"'] 
+0

Derp,应该知道,可能一直在看我的作家,呃。谢了哥们。 – Befall