def csv_split() :
raw = [
'"1,2,3" , "4,5,6" , "456,789"',
'"text":"a,b,c,d", "gate":"456,789"'
]
cr = csv.reader(raw, skipinitialspace=True)
for l in cr :
print len(l), l
下面這個函數輸出正確劃分:CSV文件不能被Python
3 ['1,2,3 ', '4,5,6 ', '456,789']
6 ['text:"a', 'b', 'c', 'd"', 'gate:"456', '789"']
正如你所知道的,第一行是正確分成3項。 但第二行不是。我希望csv閱讀器將其拆分爲兩個,而我們在這裏有6個。我也想過正則表達式 的方法,但它假設了一些具體的引用方言。
基本上我想要的是: 只需在「」中分割字符串,該字符串不會在「」的一對 中引用。
有沒有任何快速和一般的方法來做到這一點?我看到一些正則表達式的黑客,其中 假設每個領域總是引用等。我想我可以寫一個小循環 ,這是非常低效,但肯定會讚賞一些更專業的建議。非常感謝!
它正確地分裂它。您的CSV數據格式錯誤。你認爲它應該如何分裂? – 2012-07-09 01:58:08
你應該說出你真正想要的第二行,因爲我無法弄清楚你要求的是什麼。 – Gabe 2012-07-09 02:03:45
@加貝我認爲OP期望''「文本」:「a,b,c,d」和「gate」:「456,789」 - 如果我誤解了,請糾正我。 – Levon 2012-07-09 02:12:49