2014-11-14 29 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