Запись в несколько файлов

#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
  

Заполните пробелы, но простая конкатенация строк сделает свое дело.