【发布时间】:2020-06-24 16:08:49
【问题描述】:
我这样做:
f = open('foo.txt', 'rb')
ii = (x for x in f.readlines())
f.close()
print(next(ii))
我在使用迭代器并在文件关闭后调用 next 时发现此代码的实现存在问题。
由于使用迭代器并在文件关闭后在迭代器上执行而不管不使用上下文管理器,这种实现是否没有问题?
【问题讨论】:
-
使用
with open('foo.txt', 'rb') as f: ii = (x for x in f.readlines());print(next(ii))可以实现相同的行为