Python—通过在目录上循环打开FabIO模块中的图像

Python—通过在目录上循环打开FabIO模块中的图像,python,python-2.7,loops,for-loop,Python,Python 2.7,Loops,For Loop,我正试图用Python处理.cbf(晶体二进制格式,链接见下文)文件。我需要一种循环当前目录中所有文件的方法 示例1 # Reading in first file in FabIO. dat = raw_input('Please Input Required Filename: ') # Define the required filename as a string. # Example Input: file.cbf import fabio

我正试图用Python处理.cbf(晶体二进制格式,链接见下文)文件。我需要一种循环当前目录中所有文件的方法

示例1

# Reading in first file in FabIO.

dat = raw_input('Please Input Required Filename: ')     # Define the required filename as a string.

# Example Input: file.cbf

import fabio                                            # Import FabIO module for Python.

img_0001 = fabio.open(dat)                              # Open image from defined filename.
这段代码设计用于打开和显示文件,效果非常好。FabIO有一种打开下一个可用文件的方法,在这种情况下,该文件的格式为:

示例2

img_0002 = img_0001.next() 
因为我已经在示例1中定义了img_0001,所以该代码可以工作

如何循环当前目录中的所有文件,而不需要对每个文件执行示例2中的命令?如果有100个文件,它的形式会是:

示例3

for i in range (1, 99)
   img_'i+1' =  img_000'i'.next() 
我如何做这个循环,同时还要考虑前导零

任何帮助都将不胜感激,谢谢

相关信息

CBF文件:

FabIO模块:

如果您正在寻找执行动态生成代码的方法,请使用该语句。因此,您的
for
循环可以重写如下:

for i in range (1, 99)
    exec ("img_%03d = img_%03d.next()" % (i+1, i))
但是,您可以通过使用来简化表达式的lhs(左侧),而IMHO将图像存储在列表中将简化它们以后的访问:

imgs = [img_000]  
for i in range (1, 99)
    imgs.append(img_000.getframe(i))

谢谢,这看起来正是我所需要的。刚刚实现了这一点,它的工作完全符合预期。刚刚将%03d更改为%04d,以便我可以处理更大的文件集。我稍后也会让IMHO仓库试一试。再次感谢。如果你认为这个答案解决了你的问题,请考虑一下。顺便说一句,依我的拙见,这不过是……的一个初步说法;)