实验设置中的自动化脚本

时间:2019-03-13 09:11:03

标签: python

下午好,

我是python初学者,我正在尝试实现以下脚本,以生成要馈入计算机的自动命令列表。脚本现在看起来像:

print("re 1")
make_same = "xfb nc_proc 0"
first_exp = 1
exp_id = str(first_exp)
copy_par = "rpar re999"
next_please = "re " + exp_id


def macro_maker():
     parameters = [copy_par, make_same, next_please]
     for settings in parameters:
           print(settings)

macro_maker()

def repeat(f, n):
    for i in range(n):
        f()
repeat(macro_maker, 1)

我想通过某种方式对其进行修改,使其无需我的输入即可自动传递到下一个实验。例如,当前输出为:

re 1
rpar re999
xfb nc_proc 0
re 1
rpar re999
xfb nc_proc 0
re 1

我希望获得以下输出:

re 1
rpar re999
xfb nc_proc 0
re 2
rpar re999
xfb nc_proc 0
re 3

几天来我一直在寻找类似的问题,但每次都只能设法提出新的错误!

对任何可以帮助我完成这项任务的人都充满爱意。

1 个答案:

答案 0 :(得分:0)

问题仅源于您的next_please字符串在整个脚本中是恒定的。因此,它总是打印相同的内容're 1'

据我了解,这是唯一要更改的参数,您可以执行以下操作:

make_same = "xfb nc_proc 0"
copy_par = "rpar re999"
next_please = "re {}"


def macro_maker(index):
     print(next_please.format(index))
     parameters = [copy_par, make_same]
     for settings in parameters:
           print(settings)

def repeat(f, n):
    for i in range(1, n+1):
        f(i)

repeat(macro_maker, 2)

macro_maker获取一个实验索引,并将next_please与所有其他参数区别对待,将当前索引提供给它以格式化模板字符串"re {}"