0

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

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

我可以将这些文本行写入一个文本文件,但是当文件中有超过“说 4”行的文本时,我想要某种方式在 python 中编码,它会在添加下一个时删除最上面的一个。

我计划通过在调用附加行函数时读取文本文件来做到这一点,读取最后 3 行添加新行,然后将其重新写入原始文件。

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

我尝试在上一个问题中编写一些代码,但它不起作用,所以我不会在此处包含它。

4

1 回答 1

0

您不应该轻易放弃,您之前问题的公认答案几乎做到了。

您只需要执行以下操作:

  1. 打开输入文件,使用 adeque获取最后几行,并附加新行
    (不要忘记使用新行分隔符\n
  2. 重新打开该文件作为输出文件并写入您的行集合。

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)
于 2013-03-26T23:00:22.693 回答