#python #file-io
#python #file-io
Вопрос:
Я уверен, что многие из нас знакомы с шаблоном ввода-вывода файлов python для записи данных в выходной файл, как показано ниже;
outfile = open("myFile", "w")
data.dump()
outfile.close()
Все это предполагает, что у нас уже есть файл и мы можем получить к нему доступ. Теперь я хочу создать что-то более сложное.
Допустим, у меня есть цикл for, который повторяет целое число i. Допустим, диапазон составляет от 1 до 1000, и ради экономии места и головной боли я хочу записывать данные, которые я копил в своем цикле каждый раз, когда я % 100 == 0. Это должно записать десять файлов:
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
?...
Как бы я мог на python автоматически создавать новые файлы с уникальными именами, открывать и закрывать их для записи данных?
Комментарии:
1. Вы в значительной степени описываете, что нужно сделать. Чего вы не можете понять?
Ответ №1:
>>> 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
Заполните пробелы, но простая конкатенация строк сделает свое дело.