在Python中将列表元素输出到单独的文本文件中

2 投票
2 回答
4382 浏览
提问于 2025-04-16 21:23

我刚开始学习Python编程,需要一些关于基本文件操作和列表处理的帮助。

现在我有一个列表(s),里面有这些元素:

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

我需要做的是把每一行打印到新的文本文件中,每个文本文件里只包含一个元素,如下所示:

file1.txt
taylor343

file2.txt
steven435

file3.txt
roger101

我现在正在尝试用循环来实现这个,但我只能输出到一个文本文件里。

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

我该如何才能把列表中的每一行都写入新的文本文件中(而不是只写一个)

谢谢你

2 个回答

2

@Joe Kington 写了一个非常棒的答案,内容很符合 Python 的风格。如果想让理解变得更简单一些,可以这样说:

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

撰写回答