在txt文件中添加一行



我正试图在txt文件的末尾添加一行。我一直在阅读这里的一些帖子,并尝试不同的选项,但由于某种原因,新行从未添加在最后一行之后,它只是附加在最后一个之后。

所以我想知道我做错了什么。。。。我在这里展示我的测试:

测试1:

#newProt is a new data entered by the user in this case 12345
exists = False
f = open('protocols.txt', 'a+')
for line in f:
    if newProt == line:
        exists = True
        
if not exists:
    f.write(newProt)
f.close()

txt文件后这个代码:

第2页45

21145

we34z12345

测试2:

exists = False
with open('protocols.txt', 'r+') as f:
    for line in f:
        if newProt == line:
            exists = True
            
    if not exists:
        f.write(newProt)

txt文件后的这个代码:与上面完全相同。。。

而且,像这样,我测试了一些字母组合来打开文件,rb+,w等,但出于某种原因,我从来没有得到想要的输出txt文件:

第2页45

21145

we34z

12345

所以我不知道我做错了什么,我在这里举一些我从其他帖子中得到的例子。

试试这个:

exists = False
f = open('protocols.txt', 'a+')
for line in f:
    if newProt == line:
        exists = True
if not exists:
    f.write('n' + newProt)
f.close()

这会将换行符添加到文件末尾,然后添加"newProt"。

编辑:

代码没有产生所需结果的原因是,您只是在向文件中写入一个字符串。文本中的新行实际上并不在文本文件中。文本文件实际上是一系列被称为字符的字节。各种应用程序(如文本编辑器)之所以向您显示新行,是因为它将某些字符解释为格式化元素,而不是字母或数字。

"\n"是这样一个格式化字符(在ASCII标准中),它告诉您最喜欢的文本编辑器开始一行。还有其他一些,比如"\t",它可以制作一个选项卡。

查看有关Newline字符的wiki文章以了解更多信息

您可以使用f.seek(-x,x),到达最后一行,然后使用f.write()。

否则,我的理解是,如果你以"a"(附加)模式打开一个文件,它无论如何都会写在最后的中

请参阅此链接:在Python 中向具有额外新行的现有文件追加一行

相关内容

  • 没有找到相关文章

最新更新