我有很多文件,我使用glob.glob对它们进行排序以进行绘图。我的文件按编号排序:从file.00000到file.99999。
我用:
filenames = sorted(glob.glob('path/file.*'))
this_next = filenames
for i, fname1 in enumerate(this_next):
…
现在我想绘制每90个文件。
答案 0 :(得分:1)
当然,glob
和sorted
会返回列表,因此为了每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)):
...