在python中将列表元素打印成单独的文本文件

时间:2011-07-13 01:17:09

标签: python file-io

我是python编程的新手,需要一些基本的文件I / O和列表操作方面的帮助。

目前我有一个包含这些元素的列表:

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

我需要做的是将每行打印成新的文本文件,文本文件中只有1个元素,如下所示:

file1.txt
taylor343

file2.txt
steven435

file3.txt
roger101

我目前正在尝试使用循环,但我只能输出到1个文本文件

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

如何让它将每一行列表写入新的文本文件(不只是一个)

谢谢

2 个答案:

答案 0 :(得分:6)

您需要打开要写入的每个新文件。作为一个简单的例子:

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')

答案 1 :(得分:2)

@Joe Kington写了一个非常pythonic的优秀答案。一个更详细的答案可能会让人更容易理解发生的事情:

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()