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

2024-09-28 23:36:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我需要它写所有的名字到文本文件,但它似乎只想写'阿尔伯特'。我想我明白发生了什么,因为它每次移动到下一个名字时都会重写文本文件,但既然那是要写入的列表中的最后一个名字,为什么它不说“Shiro”?基本上我只想把名字写在文本文件中,但是我不知道该怎么做。你知道吗


Tags: 方法代码in内容forlennamesrange
1条回答
网友
1楼 · 发布于 2024-09-28 23:36:37

由于您每次都是以写模式打开文件,因此它会删除文件的以前内容并添加新内容。您想使用append模式,它会自动将其写入下一行。你知道吗

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

相关问题 更多 >