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

2024-05-15 20:54:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在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

^{pr2}$

因为我已经在示例1中定义了img_0001,所以这段代码可以工作。在

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

例3

for i in range (1, 99)
   img_'i+1' =  img_000'i'.next() 

我怎么做这个循环,同时还要计算前导零?在

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

相关信息

CBF文件:http://www.esrf.eu/computing/Forum/imgCIF/cbf_definition.html

FabIO模块:http://pythonhosted.org/fabio/getting_started.html


Tags: 文件方法代码in示例imgforinput
1条回答
网友
1楼 · 发布于 2024-05-15 20:54:29

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

for i in range (1, 99)
    exec ("img_%03d = img_%03d.next()" % (i+1, i))

但是,您可以通过使用^{}简化表达式的lhs(左侧),并且IMHO将图像存储在列表中可以简化它们以后的访问:

^{pr2}$

相关问题 更多 >