阅读csv,然后枚举

Op.*_*Ivy 4 python csv enumerate

目前,我在我的代码,直接有一个列表和正在使用枚举,所以我可以使用列表索引号供用户选择的项目之一.看起来像这样(只包括标题行)

fmpList = [['Date', 'ID', 'Plot No', 'Modified', 'Lat', 'Long']......
for item in enumerate(fmpList[]):            
    print "[%d] %s" % item
Run Code Online (Sandbox Code Playgroud)

这很好但我不想把列表放在函数中,而是从文件中读取csv.我以前做的另一种选择是......

import csv
with open ('fmpList.csv', 'rU') as csvfile: 
        next (csvfile, None)
        plotlist = csv.reader(csvfile, delimiter=',', dialect=csv.excel_tab)
        for row in enumerate (plotlist):
            print '[%s]' %(item[2])
Run Code Online (Sandbox Code Playgroud)

这也适用,但我似乎无法在2相结合...读取csv文件,然后枚举能有基于索引的选择.非常感谢帮助

编辑:所以现在我已经得到了我想要的代码......

import csv
with open ('fmpList.csv', 'rU') as csvfile: 
        next (csvfile, None)
        plotlist = csv.reader(csvfile, delimiter=',', dialect=csv.excel_tab)
        for row in enumerate (plotlist):
            print '[%s]' %(item[2])
Run Code Online (Sandbox Code Playgroud)

但最后一行并没有给我第2列显示.事实上,我是在第0列(索引号)和第2列(图名称)之后.[0]给第一列......很酷,但任何大于1的数字都会给出IndexError:..out的范围.试过每一个组合但没有任何作用

jam*_*lak 7

enumerate(...) 适用于任何可迭代的

import csv
with open ('fmpList.csv', 'rU') as csvfile: 
    next(csvfile, None) # skip header
    plotlist = csv.reader(csvfile, delimiter=',', dialect=csv.excel_tab)
    for i, row in enumerate(plotlist):
        print "[%d] %s" % (i, row)
Run Code Online (Sandbox Code Playgroud)