循环遍历python中的文件?

时间:2014-08-24 15:27:50

标签: python

我有很多文件,我使用glob.glob对它们进行排序以进行绘图。我的文件按编号排序:从file.00000到file.99999。

我用:

filenames = sorted(glob.glob('path/file.*'))
this_next = filenames 

for i, fname1 in enumerate(this_next):
    …

现在我想绘制每90个文件。

1 个答案:

答案 0 :(得分:1)

当然,globsorted会返回列表,因此为了每90获得一个元素,您可以使用:

from glob import glob

for file in sorted(glob('path/file.*'))[::90]:
    ...

一个更节省内存的解决方案,如果你确定glob返回已排序的文件名将是使用生成器:

from glob import iglob
from itertools import islice

for file in islice(iglob('path/file.*'), 0, None, 90):
    ...

但如果您知道该模式是该统计数据,那么最有效的方法是生成文件名:

for file in ('file.%5d' % i for i in xrange(0, 99999, 90)):
    ...