多次执行python脚本

时间:2012-04-12 23:31:46

标签: python python-2.7

我不确定这样做的最佳方法,但我将python脚本保存为.py。该脚本的最终输出是两个文件x1.txt和y1.txt。

基本上我想运行这个脚本1000次,每次运行用新名称写两个文本文件,即x1.txt + y1.txt然后再运行x2.txt和y2.txt。

考虑到这一点似乎最好用

之类的东西来启动整个脚本
runs=xrange(:999)
for i in runs:

##run the script

然后用完成的东西

结束
    for i in runs:
        filnameA=prefix += "a"+i


open("filnamea.txt", "w").write('\n'.join('\t'.join(x for x in g if x) for g in grouper(7, values)))


    for i in runs:
        filnameB=prefix += "a"+i


open("filnameB.txt", "w").write('\n'.join('\t'.join(x for x in g if x) for g in grouper(7, values)))

这真的是最好的方法吗?我打赌它不是......更好的想法?

我知道你可以import time并写一个匹配时间的文件名,但这对以后的处理来说会很烦人。

2 个答案:

答案 0 :(得分:2)

如果您的计算机具有并行运行这些资源的资源,则可以使用multiprocessing来执行此操作。否则使用循环来顺序执行它们。

你的问题并不清楚你坚持哪个部分。你是否需要关于是否应该使用循环的建议?如果是,我的答案就在上面。或者你还需要帮助形成文件名?你可以这样做:

import sys

def myscript(iteration_number):
    xfile_name = "x%d.txt" % iteration_number
    yfile_name = "y%d.txt" % iteration_number
    with open(xfile_name, "w") as xf:
        with open(yfile_name, "w") as yf:
            ... whatever your script does goes here

def main(unused_command_line_args):
    for i in xrange(1000):
        myscript(i)
    return 0

if __name__ == '__main__':
    sys.exit(main(sys.argv))

答案 1 :(得分:0)

我不确定,但也许可以帮忙: 假设我要打印“ hello” 10次,而无需手动编写10次。为此,我可以定义一个函数:

    #Function for printing hello 10 times:
    def func(x):
       x="hello"
       i=1
       while i<10 :
           print(x)
           i += 1
       else :
           print(x)

    
    print(func(1))