使用next遍历迭代器

不使用for遍历可迭代对象,而使用 next() 函数并在代码中捕获 StopIteration 异常。 比如,下面的例子手动读取一个文件中的所有行:

def manual_iter():
    with open('test.txt', "r") as f:
        try:
            while True:
                line = next(f)
                print(line, end='')
        except StopIteration:
            pass

StopIteration 用来指示迭代的结尾。 然而,如果你手动使用上面演示的 next() 函数的话,你还可以通过返回一个指定值来标记结尾,比如 None 。

with open('text.txt', "r") as f:
    while True:
        line = next(f, None)
        if line is None:
            break
        print(line, end='')

你可能感兴趣的:(PYTHON-迭代器与生成器)