Распечатка элементов списка в отдельные текстовые файлы в python - PullRequest
2 голосов
/ 13 июля 2011

Я новичок в программировании на Python и нуждаюсь в некоторой помощи с некоторыми базовыми операциями ввода-вывода файлов и манипулирования списками.

В настоящее время у меня есть список (ы), в которых есть эти элементы:

['taylor343', 'steven435', 'roger101\n']

что мне нужно сделать, это напечатать каждую строку в новые текстовые файлы, используя только 1 элемент в текстовых файлах, как показано ниже:

file1.txt
taylor343

file2.txt
steven435

file3.txt
roger101

Я сейчас пытаюсь работать с этим, используя цикл, но я могу вывести только в 1 текстовый файл

for x in list:  
    output.write(x+"\n")

Как мне заставить его записывать каждую строку списка в новые текстовые файлы (а не только один)

Спасибо

Ответы [ 2 ]

6 голосов
/ 13 июля 2011

Вам нужно открывать каждый новый файл, в который вы хотите записать.В качестве быстрого примера:

items = ['taylor', 'steven', 'roger']
filenames = ['file1', 'file2', 'file3']

for item, filename in zip(items, filenames):
    with open(filename, 'w') as output:
        output.write(item + '\n')
2 голосов
/ 13 июля 2011

@ Джо Кингтон написал отличный ответ, который очень питонический. Более подробный ответ, который может немного облегчить понимание происходящего, будет примерно таким:

s = ['taylor343', 'steven435', 'roger101\n']

f = open("file1.txt","w")
f.write(s[0]+"\n")
f.close()

f = open("file2.txt","w")
f.write(s[1]+"\n")
f.close()

f = open("file3.txt","w")
f.write(s[2]) # s[2] already has the newline, for some reason
f.close()

Если бы я сделал это немного более общим, я бы сделал это:

s = ['taylor343', 'steven435', 'roger101'] # no need for that last newline
for i,name in enumerate(s):
    f = open("file"+str(i+1)+".txt","w")
    f.write(name+"\n")
    f.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...