Python 处理文件时,如何获取当前行号?

Python 处理文件时,如何获取当前行号?,python,line-numbers,Python,Line Numbers,当我使用下面的构造在文件上循环时,我还需要当前行号 with codecs.open(filename, 'rb', 'utf8' ) as f: retval = [] for line in f: process(line) 有类似的东西存在吗 for line, lineno in f: 如果您使用的Python版本不允许您设置枚举的起始编号(此功能是在Python 2.6中添加的),并且您希望使用此功能,那么最好

当我使用下面的构造在文件上循环时,我还需要当前行号

    with codecs.open(filename, 'rb', 'utf8' ) as f:
        retval = []
        for line in f:
            process(line)
有类似的东西存在吗

    for line, lineno in f:
如果您使用的Python版本不允许您设置
枚举的起始编号(此功能是在Python 2.6中添加的),并且您希望使用此功能,那么最好的解决方案可能是提供一个这样的实现,而不是调整内置函数返回的索引。这里就是这样一个实现

def enumerate(iterable, start=0):
    for item in iterable:
        yield start, item
        start += 1

如果您使用的是Python2.6+,kindall的答案涵盖了这一点

Python2.5和更早版本不支持enumertate的第二个参数,因此需要使用类似这样的内容

for i, line in enumerate(f):
    lineno = i+1


除非你同意第一行的数字是0,否则人们是否仍然使用2.5或更早版本,除非是出于传统支持原因?@Karl,今天早些时候我为使用2.4的人回答了一个问题
for i, line in enumerate(f):
    lineno = i+1
for lineno, line in ((i+1,j) for i,j in enumerate(f)):