目前,我的代码中直接有一个列表并使用枚举,因此我可以使用列表索引号为用户选择其中一个项目。看起来像这样(只包括标题行)
fmpList = [['Date', 'ID', 'Plot No', 'Modified', 'Lat', 'Long']......
for item in enumerate(fmpList[]):
print "[%d] %s" % item
这很好但我不想把列表放在函数中,而是从文件中读取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])
这也有效但我似乎无法将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])
但最后一行并没有给我第2列显示。事实上,我是在第0列(索引号)和第2列(图名称)之后。 [0]给第一列......很酷,但任何大于1的数字都会给出IndexError:..out的范围。试过每一个组合,但没有任何作用
答案 0 :(得分:6)
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)