【发布时间】:2010-06-12 22:32:19
【问题描述】:
我正在编写一个待办事项列表程序。它保存一个文件,每行都有要做的事情,并允许用户添加或删除项目。问题是由于某种原因,我最终在文件的开头有很多零字节,即使该项目被正确删除。我会给你看几张截图,以确保我说得清楚。
这是运行程序之前Notepad++中的文件:
这是删除第3项后的文件(从1开始计数):
这是相关代码。实际程序比较大,但是只运行这部分会触发错误。
import os
TODO_FILE = r"E:\javi\code\Python\todo-list\src\todo.txt"
def del_elems(f, delete):
"""Takes an open file and either a number or a list of numbers, and deletes the
lines corresponding to those numbers (counting from 1)."""
if isinstance(delete, int):
delete = [delete]
lines = f.readlines()
f.truncate(0)
counter = 1
for line in lines:
if counter not in delete:
f.write(line)
counter += 1
f = open(TODO_FILE, "r+")
del_elems(f, 3)
f.close()
你能指出错误在哪里吗?
【问题讨论】: