鉴于这段代码:
from glob import glob, iglob
for fn in glob('/*'):
print fn
print ''
for fn in iglob('/*'):
print fn
Run Code Online (Sandbox Code Playgroud)
阅读glob 的文档我看到glob()返回一个基本的文件列表,iglob是一个Iterator.但是,我能够迭代两者,并且每个文件返回相同的文件列表.
我已经阅读了有关Iterator的文档,但它还没有真正了解这个主题!
那么iglob()返回一个Iterator会给我带来glob()的列表有什么好处呢?我是否能从我的老朋友那里获得额外的功能?
ami*_*mit 23
文档本身提到了不同之处:
返回一个迭代器,它产生与glob()相同的值,而不是实际同时存储它们.
基本上列表将包含内存中的所有项目.迭代器不需要,因此它需要更少的内存.
添加到阿米特的答案。iglob() 在特定情况下很有用,如果您删除列表中的目录,列表中的文件和文件夹将由 glob() 存储,因此循环中的进一步访问会引发异常。但是通过使用 iglob() 我们可以克服并发修改异常
归档时间: |
|
查看次数: |
15997 次 |
最近记录: |