2010-06-26 154 views
4

我有一個我想用Python讀取的逗號分隔值表。我需要做的是首先告訴Python不要跳過第一行,因爲它包含標題。然後我需要告訴它將數據讀入列表而不是字符串,因爲我需要從數據中構建一個數組,而第一列是非整數(行標題)。如何在Python中讀取csv文件時定義列標題

共有11列5行。
下面是表的格式(除了沒有行空格):

col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11 

w0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10   
w1 1, 2, 3, 4, 5, 6, 7, 8, 9, 10  
w2 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 
w3 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 

有沒有辦法做到這一點?任何幫助是極大的讚賞!

+0

如果['csv'模塊文檔](https://docs.python.org/3/library/csv.html)對您來說太長,我已經創建了[TL; DR mini文章]( http://martin-thoma.com/python-csv/)帶有可複製代碼。 – 2015-02-08 12:36:55

回答

26

你可以使用csv module這種事情。它將在每行中讀取表示不同字段的字符串列表。

你究竟是如何想使用它取決於你如何去後處理數據,但你可能會考慮一個Reader對象(從csv.reader()功能),就可以調用next()一次拿到第一行,即標題,然後迭代for循環中的其餘行。

r = csv.reader(...) 
headers = r.next() 
for fields in r: 
    # do stuff 

如果你要風把字段放入一個字典,你會使用DictReader來代替(即類將自動從第一排坐字段名,所以你可以構建它的一個在循環中使用它)。

+11

Python 3筆記:使用'next(r)' – Aprillion 2012-06-20 19:20:27