2014-04-10 76 views
0

嘗試將第一列(名稱)列入列表以顯示用戶,然後使用對CSV文件的更改進行更新。 使用此代碼:獲取第一列CSV文件Python

import csv 
list = [] 
exRtFile = open ('exchangeRate.csv','r') 
exchReader = csv.reader(exRtFile) 
while True: 
    for column in exchReader: 
     list.append(column and column[0]) 
     print(list) 
     exRtFile.close 

不過,我得到的underired輸出:

['US Dollar'] 
['US Dollar', []] 
['US Dollar', [], 'Japanese Yen'] 
['US Dollar', [], 'Japanese Yen', []] 
['US Dollar', [], 'Japanese Yen', [], 'Euro'] 
['US Dollar', [], 'Japanese Yen', [], 'Euro', []] 
['US Dollar', [], 'Japanese Yen', [], 'Euro', [], 'Pound Sterling'] 
['US Dollar', [], 'Japanese Yen', [], 'Euro', [], 'Pound Sterling', []] 
['US Dollar', [], 'Japanese Yen', [], 'Euro', [], 'Pound Sterling', [], 'Japanese Yen'] 
+0

不要使用'list'作爲變量名;你掩蓋了內置的類型。 –

+0

由於'csv.reader'爲您提供了行,因此您的'column'變量被命名爲混亂 - 您正在遍歷行,並且想要'row [0]'。 (PS:不要忘記['newline ='''](http://stackoverflow.com/questions/22991406/indexerror-list-index-out-of-range-csv-file#comment35112723_22991406)!) – DSM

回答

3

要附加空column列表每隔一行;測試列追加:

col = [] 
exRtFile = open ('exchangeRate.csv','r') 
exchReader = csv.reader(exRtFile) 
for column in exchReader: 
    if column: 
     col.append(column[0]) 

在那裏用一個無限循環(while True:)。

或使用列表中理解和文件作爲上下文管理器自動關閉:

with open('exchangeRate.csv','rb') as exRtFile: 
    exchReader = csv.reader(exRtFile) 
     col = [c[0] for c in exchReader if c]: 
相關問題