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?
Try this:
Concatenate the
i
variable to a string as follows:OR
See here for other techniques available.
Simply construct the file name with
+
andstr
. If you want, you can also use old-style or new-style formatting to do so, so the file name can be constructed as:Note that your current version does not specify an encoding (you should), and does not correctly close the file in error cases (a
with
statement does that):Use
f = open("file_{0}.dat".format(i),'w')
. Actually, you might want to use something likef = open("file_{0:02d}.dat".format(i),'w')
, which will zero-pad the name to keep it at two digits (so you get "file_01" instead of "file_1", which can be nice for sorting later). See the documentation.