Поясним структуру данных. Это звучит так:
outer_list = [ ["STRING1", "STRING2", ...],
["STRING1", "STRING2", ...],
["STRING1", "STRING2", ...],
["STRING1", "STRING2", ...]
]
Итак, давайте использовать Питон итерацию для структуры петли для прохождения внешнего списка.
for inner_list in outer_list:
Но мы хотим, чтобы записать содержимое каждого inner_list
в файл, используя позицию inner_list
в outer_list
. Давайте используем встроенную функцию enumerate()
, чтобы получить позицию.
for n, inner_list in enumerate(outer_list, 1):
# write inner list to file
Давайте рассмотрим запись файла inner_list
в файл.
with open('file_{0}.dat'.format(n),'w') as ffile: # this is fine, well done.
ffile.write(inner_list)
Все вместе это было бы:
for n, inner_list in enumerate(outer_list, 1):
with open('file_{0}.dat'.format(n),'w') as ffile:
ffile.write(inner_list)
# no need to close the file, the with syntax does this for you.
EDIT: Существует еще один шаг, необходимый здесь, как отметил @mhawke
The write()
метод требует, чтобы передать строку , Мы можем легко конвертировать наш inner_list в строку. Мой предпочтительный метод заключается в использовании метода join()
. Мы можем указать, что мы соединим каждую строку в inner_list
с новой строки, так что он будет печатать красиво, т.е.
'\n'.join(inner_list)
Поэтому наше окончательное решение будет:
for n, inner_list in enumerate(outer_list, 1):
with open('file_{0}.dat'.format(n),'w') as ffile:
ffile.write('\n'.join(inner_list))
Во второй строке вы должны изменить его на длину текстового блока [n]. –