有没有办法检查文本文件中是否有任何内容,如果有,请写入下一行?

时间:2017-03-08 19:23:41

标签: python python-3.x

由于文本文件的工作方式,我需要知道如何找到(如果有办法)行中是否有任何内容,如果有,我需要它以便开始编写下一行。我使用for循环并使用迭代写入文本文件,但它只写出它找到的第一个东西。这是代码:

names = ['Clemont', 'Albert', 'Shiro']
    for x in range(len(names)):
        file = open('file.txt', 'w')
        file.write(names[x])

我需要它将所有名称写入文本文件,但它似乎只想写“阿尔伯特'”。我以为我理解发生了什么,因为每当它移动到下一个名字时它会重写文本文件,但是为什么它不会说' Shiro'因为这是要写入的列表中的姓氏?基本上我只是想在文本文件中将名称写入单个名称,但我不知道该怎么做。

1 个答案:

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