python:多次执行.py文件?

时间:2014-08-27 18:05:05

标签: python loops execute

我有大约50行代码,它不是基于任何循环变量(这就是我不能为循环做的原因)但是我想多次运行这段代码以便我的输出数组不断积累长度。有没有办法做到这一点?我想执行10,000次这个.py文件。让我知道我该怎么做。我知道通常我会通过输入

在我的终端上执行它

execfile(' filename.py')

但怎么这样做几次? 谢谢!

.py文件中的内容示例:说我有一堆我想计算卡平方的值的分布,并在10,000次迭代后保存数组中的所有值chi = [],如何我会这样做吗?

chi = []
def chisqg(ydata,ymod,sd=None):  

    if sd==None:  
        chisq=np.sum((ydata-ymod)**2)  
    else:  
        chisq=np.sum( ((ydata-ymod)/sd)**2 )  
    return chisq

chi1 = chisqg(y1,mod1,sd=0.1)
chi.append(chi1)

3 个答案:

答案 0 :(得分:3)

我不确定你为什么认为一个循环在这里工作;如果您希望chi变量最终输入10k条目,您只需将文件的最后几行更改为:

for i in range(10000):
    chi1 = chisqg(y1,mod1,sd=0.1)
    chi.append(chi1)

答案 1 :(得分:2)

for i in range(10000):
  execfile("filename.py")

答案 2 :(得分:1)

如果您不想同时执行文件,那么最简单的方法是使用:

在窗户上:

for x in range(0, 30):
    %run -i "insert_your_file.py"

在 Linux 或 OSX 上

for x in range(0, 30):
    %run -i 'insert_your_file.py'

***是的,双引号很重要。

有关 %run 的更多信息: enter link description here

这类似于在系统提示符下运行 python 文件 args,但具有为您提供 IPython 回溯的优势,并将所有变量加载到您的交互式命名空间中以供进一步使用(除非使用了 -p,请参见下文)。< /p>

该文件在最初仅由 name=='ma​​in' 和 sys.argv 组成的命名空间中执行,如所示构造。因此,它会将其环境视为作为独立程序运行(除了共享全局对象,例如以前导入的模块)。但是在执行之后,IPython 交互式命名空间将更新为程序中定义的所有变量(name 和 sys.argv 除外)。这允许为交互式工作非常方便地加载代码,同时为每个程序提供一个“干净的表”来运行。