由于文本文件的工作方式,我需要知道如何找到(如果有办法)行中是否有任何内容,如果有,我需要它以便开始编写下一行。我使用for循环并使用迭代写入文本文件,但它只写出它找到的第一个东西。这是代码:
names = ['Clemont', 'Albert', 'Shiro']
for x in range(len(names)):
file = open('file.txt', 'w')
file.write(names[x])
我需要它将所有名称写入文本文件,但它似乎只想写“阿尔伯特'”。我以为我理解发生了什么,因为每当它移动到下一个名字时它会重写文本文件,但是为什么它不会说' Shiro'因为这是要写入的列表中的姓氏?基本上我只是想在文本文件中将名称写入单个名称,但我不知道该怎么做。
答案 0 :(得分:2)
由于您每次都在写入模式下打开文件,因此会删除文件的先前内容并添加新内容。您想使用追加模式,它将自动将其写入下一行。
names = ['Clement', 'Albert', 'Shiro']
for name in names:
with open('file.txt','a') as f:
f.write(name + '\n')
最好在执行文件操作时使用with
,因为它会自动关闭文件
你也可以只打开一次文件(谢天谢地):
这是更好的选择
names = ['Clement', 'Albert', 'Shiro']
with open('filename.txt', 'w') as f:
for name in names:
f.write(name+'\n')