如果python中的行数超过4行,则将文本行追加到文件并删除第一行

如果python中的行数超过4行,则将文本行追加到文件并删除第一行,python,text,line,Python,Text,Line,我有一个IRC客户端,当我广播我的桌面时,人们正在聊天。我想在我的广播中展示这一点,并找到了一个方便的ShockWave flash标题插件,它可以读取文本文件并在屏幕上显示它们 我的IRC客户端使用python脚本,每次有人写消息时都可以调用函数 我可以在输入这些文本行时将其写入文本文件,但我需要一些python编码方法,当文件中的文本行数超过“比如说4行”时,在添加下一行时会删除最上面的一行 我计划在调用append line函数时读取文本文件,读取最后3行添加新行,然后将其重新写入原始文件

我有一个IRC客户端,当我广播我的桌面时,人们正在聊天。我想在我的广播中展示这一点,并找到了一个方便的ShockWave flash标题插件,它可以读取文本文件并在屏幕上显示它们

我的IRC客户端使用python脚本,每次有人写消息时都可以调用函数

我可以在输入这些文本行时将其写入文本文件,但我需要一些python编码方法,当文件中的文本行数超过“比如说4行”时,在添加下一行时会删除最上面的一行

我计划在调用append line函数时读取文本文件,读取最后3行添加新行,然后将其重新写入原始文件

当然,当脚本第一次运行时,文件中应该少于3行,因此python也应该考虑到这一点,并且只读取最后2行、1行或0行,具体取决于


在上一个问题中,我试着写了一些代码,但是没有用,所以我不想在这里包含它。

你不应该太轻易放弃,你的答案几乎成功了

您只需执行以下操作:

  • 打开输入文件,使用
    deque
    获取最后几行,并附加新行
    (不要忘记使用新行分隔符
    \n
  • 将该文件作为输出文件重新打开,并写入行集合


  • 这是Python2.7还是Python3,我使用的是Python2.7,似乎不喜欢appendwell无所谓我使用+=作为concatator而不是.append()。。。但这似乎是文件的最后三个字母,而不是行。这些只是标准文本文件,\n是行结束字符。因此,上面的代码似乎保留了最后四个字符,包括\nI get:AttributeError:'str'对象没有属性'append'
    from collections import deque
    
    path = 'test.txt'
    
    with open(path, 'r') as file:
        lines = deque(file, 4)
        lines.append("\nthis is an additional line.")
    
    with open(path, 'w') as file:
        file.writelines(lines)