如何使用Python代码将文件中的内容仅保存为5行?
如何使用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个值,以此类推。
如何使用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` 语句。
这种行为比我认为提问者描述的更有意义,但您可能应该明确指出它可能是不同的。肯定存在一些歧义,但在我看来,提问者希望保存的第六个值应该放在文件的顶部,取代第一行。
我觉得这在假设中已经说明了;第一行是最老的,最后一行是最新的。但我可以更明确地表达一下。