当我使用下面的构造循环文件时,我还想要当前行号。
with codecs.open(filename, 'rb', 'utf8' ) as f:
retval = []
for line in f:
process(line)
是否存在类似的东西?
for line, lineno in f:
当我使用下面的构造循环文件时,我还想要当前行号。
with codecs.open(filename, 'rb', 'utf8' ) as f:
retval = []
for line in f:
process(line)
是否存在类似的东西?
for line, lineno in f:
for lineno, line in enumerate(f, start=1):
如果你被困在一个不允许你设置起始数字的 Python 版本上enumerate
(这个特性是在 Python 2.6 中添加的),并且你想使用这个特性,最好的解决方案可能是提供一个实现,而不是调整内置函数返回的索引。这是一个这样的实现。
def enumerate(iterable, start=0):
for item in iterable:
yield start, item
start += 1
如果您使用的是 Python2.6+,kindall 的回答涵盖了它
Python2.5及更早版本不支持枚举第二个参数,所以需要使用类似这样的东西
for i, line in enumerate(f):
lineno = i+1
或者
for lineno, line in ((i+1,j) for i,j in enumerate(f)):
除非你同意第一行是数字 0