2011-07-05 250 views
9

下面我有一個字符串,代表從csv文件中拉出的一行。每列用逗號分隔,並將值包裹在「」中。解析python中每列的值的最簡單方法是什麼?在python中用逗號分隔逗號分隔的csv文件

"Mr","Bob","","Boberton","","President","","","","Blah, Inc. of Iowa","blah blah blah","","Grand Island","Hall County","NE","68801","7228","United States","308-111-1111","","","P.O. BOX 1111","","Grand Island","Hall County","NE","11111","1111","United States","","40.00000","-98.0000","Gasoline service stations","11111","1010101010","","","false","SINGLE_LOCATION","","","","","","","","","No","No","No","Owns","No","No","","","55.125905","","0.052369","","100","","100","0","","","1971","Low Risk","Convenience Stores & Truck Stops","1111111","1111111","111111","1111111" 

上面的數據都是一個大的字符串,需要拆分成列,所以我可以得到值。我不問如何加載一個csv文件。已經找到了這一部分。

+9

使用'csv'。事實上,在使用'csv'之前,嘗試在Stack Overflow上解析CSV解析類似的問題,因爲所有這些問題都有已經編寫的代碼示例。 –

+2

http://docs.python.org/library/csv.html –

回答

16

Python有一個模塊:

http://docs.python.org/library/csv.html

import csv, sys 
filename = 'some.csv' 
with open(filename, 'rb') as f: 
    reader = csv.reader(f) 
    try: 
     for row in reader: 
      print row 
    except csv.Error, e: 
     sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e)) 
+0

這有幫助,但是如何從特定列中獲取值? – Sam

+0

@Sam:每行是一個列,每列有一個條目。 –

+1

@Sam:或者,csv模塊有一個DictReader類,它將數據讀入Dict –