Creating a new file, filename contains loop variable, python
Question: I want to run a function over a loop and I want to store the outputs in
different files, such that the filename contains the loop variable. Here is an
example

    
    
    for i in xrange(10):
       f = open("file_i.dat",'w')
       f.write(str(func(i))
       f.close()
    

How can I do it in python?


Answer: Simply construct the file name with `+` and `str`. If you want, you can also
use [old-style](http://docs.python.org/library/stdtypes.html#string-
formatting) or [new-style
formatting](http://docs.python.org/library/stdtypes.html#str.format) to do so,
so the file name can be constructed as:

    
    
    "file_" + str(i) + ".dat"
    "file_%s.dat" % i
    "file_{}.dat".format(i)
    

Note that your current version does not specify an encoding ([you
should](http://www.joelonsoftware.com/articles/Unicode.html)), and does not
correctly close the file in error cases (a `with` statement [does
that](http://docs.python.org/tutorial/inputoutput.html#methods-of-file-
objects)):

    
    
    import io
    for i in xrange(10):
       with io.open("file_" + str(i) + ".dat", 'w', encoding='utf-8') as f:
           f.write(str(func(i))
    

