execute python script multiple times

python, python-2.7

Solution

If your computer has the resources to run these in parallel, you can use `multiprocessing` to do it. Otherwise use a loop to execute them sequentially.

Your question isn't quite explicit about which part you're stuck with. Do you just need advice about whether you should use a loop? If yes, my answer is above. Or do you also need help with forming the filenames? You can do that part like this:

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))

Problem

Im not sure about the best way to do this but I have a python script saved as a .py. The final output of this script is two files x1.txt and y1.txt. Basically I want to run this script say 1000 times and each run write my two text files with new names i.e x1.txt + y1.txt then second run x2.txt and y2.txt. Thinking about this it seems it might be better to start the whole script with something like ``` runs=xrange(:999) for i in runs: ##run the script ``` and then finish with something that does ``` 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))) ``` Is this really the best way to do it? I bet its not..better ideas? I know you can `import time` and write a filename that mathes time but this would be annoying for processing later.

Original source