如何使用Python代码将文件中的内容仅保存为5行?

8 浏览
0 Comments

如何使用Python代码将文件中的内容仅保存为5行?

我有这个函数def来保存一些变量值,我需要通过某个E2设备的遥控器手动添加它。\n

def saveKey(key):
     try:
         f=open("/etc/savekeys","w")
         f.write(str(key.replace("|", "")))
         f.close()
     except:
         pass

\n保存的值类似于\n

7777776577777765

\n或者\n

777AACD77777AACD

\n但是每次保存新值时,旧值都会被删除。\n我需要修改这个函数,使其只保存5个值,当保存第6个值时,它会替换第1个值,保存第7个值时,它会替换第2个值,以此类推。

0
0 Comments

如何使用Python代码仅保存5行文件?

假设一些内容:

- 文件中的年龄是从上到下确定的。第一行是最老的,最后一行是最新的。任何新行都总是放在文件的末尾。

- 您一次只写入一行。

- 这不涉及线程或多个进程。

在这种情况下,流程很简单:

1. 打开文件以获取所有行。

2. 添加您的行。

3. 如果行数超过上限,则删除第一行。

4. 将所有行写入文件。

代码如下:

def save_key(key, max_lines=5):
    lines = []
    with open("file", "r") as f:
        lines = f.readlines()
    lines.append(key)
    lines = lines[-max_lines:]
    with open("file", "w") as f:
        f.writelines(lines)

我会使用 `lines = lines[-max_lines:]`。如果您这样做,甚至不需要在之前加上 `if` 语句。

这种行为比我认为提问者描述的更有意义,但您可能应该明确指出它可能是不同的。肯定存在一些歧义,但在我看来,提问者希望保存的第六个值应该放在文件的顶部,取代第一行。

我觉得这在假设中已经说明了;第一行是最老的,最后一行是最新的。但我可以更明确地表达一下。

0