2014-04-10 78 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]: 
相关问题