循环python脚本

时间:2012-04-19 19:11:53

标签: python for-loop

我正在使用一个适合数据集的行的脚本并输出一些拟合参数。运行fitter的命令如下所示:

fitter = Fitter(hdf2.root.OM01, plot=False)

我想循环此命令,以便输出文件'hdf2.01', 'hdf2.02', ... 'hdf2.50'

的拟合参数

如何循环此代码?

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您的对象具有编号属性(OM01OM50)。您可以使用循环生成这些属性名称,并使用getattr从对象中检索它们。

如果您的对象被称为root,就像在评论中那样,您可以执行以下操作:

parameters = []
for i in range(1, 51):
    parameter = getattr(root, 'OM%02d' % i)
    parameters.append(parameter)

# now all of your parameters are in the parameter array

或者,如果您喜欢列表推导(以及谁不喜欢):

parameters = [getattr(root, 'OM%02d' % i) for i in range(1, 51)]

我想你需要在Fitter中使用这些参数,你可以这样做:

results = []
for i in range(1, 51):
    parameter = getattr(hdf2.root, 'OM%02d' % i)
    result = Fitter(parameter, plot=False)
    results.append(result)

编辑:如果您的文件名称为“hdf2.root.OM01”,“hdf2.root.OM02”等,您可以这样做:

results = []
for i in range(1, 51):
    filename = 'hdf2.root.OM%02d' % i
    result = Fitter(filename, plot=False)
    results.append(result)