2012-03-26 28 views
2

我需要檢查csv文件中的列標題,只需要此任務的標題值,而不是下面的值(尚)。現在我正在使用DictReader和fieldnames來獲取列標題,主要是因爲使用此方法的代碼更清晰。是否有任何理由(性能或其他)只是使用標準的CSV閱讀器,讀取頂部列作爲標題,然後關閉文件?DictReader字段名與csv閱讀器第一行

回答

7

我會想象DictReader只會比csv閱讀器效率稍低(我從來沒有見過基準測試)。 DictReader提供的是更好的可讀性。任何人閱讀你的代碼就可以看到什麼是要去當你訪問一個列

reader = csv.DictReader(f.open) 
for line_dict in reader: 
    line_dict['First Column'] 
    line_dict['Second Column'] 

反對CSV讀者的只是數字指標。如果您正在處理具有多列的文件,那麼必須記住列名稱的索引可能令人發狂。我認爲DictReader贏得了可讀性。

+2

此外,代碼更具彈性 - 如果有人重新訂購CSV文件(例如,在中間添加一個新列),它不會讓您的代碼變得麻木。 – aravenel 2012-06-22 16:43:55

+0

使用沒有輸入字段名的DictReader時,DictReader._fieldnames只有在讀取第一個數據行後纔可用。所以這是一個負數。 – 2013-07-04 15:44:51