I'm sure many of us are familiar with the python file IO pattern to write data to an outfile, as seen below;
outfile = open("myFile", "w")
data.dump()
outfile.close()
This is all supposing that we already have the file and can access it. Now, I want to create something a bit more complicated.
Say I have a for-loop that iterates through an integer i. Say the range is 1 - 1000, and for the sake of saving space and headaches I want to write data I have been saving up in my loop every time that i % 100 == 0. This should write ten files:
for i in range (1, 1001):
#scrape data from API and store in some structure
...
if i % 100 == 0:
#Create a new outfile, open it, and write the data to it
?...
How would I go about, in python, automatically creating new files with unique names, and opening and closing them for writing data?
>>> my_list = []
>>> for i in range(1, 1001):
... # do something with the data... in this case, simply appending i to a list
... my_list.append(i)
... if i % 100 == 0:
... # create a new file name... it's that easy!
... file = fname + str(i) + ".txt"
... # create the new file with "w+" as open it
... with open(file, "w+") as f:
... for item in my_list:
... # write each element in my_list to file
... f.write("%s" % str(item))
... print(file)
...
file100.txt
file200.txt
file300.txt
file400.txt
file500.txt
file600.txt
file700.txt
file800.txt
file900.txt
file1000.txt
Fill in the blanks, but a simple string concatenation would do the trick.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.