Python-从文件中删除一行(使用条目的待办事项列表程序,与其他帖子不同)

Python-从文件中删除一行(使用条目的待办事项列表程序,与其他帖子不同),python,python-3.x,python-2.7,tkinter,tkinter-entry,Python,Python 3.x,Python 2.7,Tkinter,Tkinter Entry,我的代码有问题。我正在尝试从文件中删除特定行。我正在Tkinter中制作一个待办事项列表程序,并使用一个标签作为待办事项列表。我有两个按钮,“添加项目”和“删除项目”。我还有一个输入框,按钮使用.get()方法从输入中提取字符串。“删除”按钮不起作用,因为我无法从程序用于存储列表的文件中删除行。我已经看过很多关于同一问题的帖子,但我的不同。每当我运行程序,并在填写文本框后单击delete item(删除项目),它都会删除文件中的所有项目,但我只希望它删除一个项目。问题不是@JetMashKang

我的代码有问题。我正在尝试从文件中删除特定行。我正在Tkinter中制作一个待办事项列表程序,并使用一个标签作为待办事项列表。我有两个按钮,“添加项目”和“删除项目”。我还有一个输入框,按钮使用.get()方法从输入中提取字符串。“删除”按钮不起作用,因为我无法从程序用于存储列表的文件中删除行。我已经看过很多关于同一问题的帖子,但我的不同。每当我运行程序,并在填写文本框后单击delete item(删除项目),它都会删除文件中的所有项目,但我只希望它删除一个项目。问题不是@JetMashKangaroo在本文中遇到的问题:

以下是代码片段:

def dele():
    global ItemName
    global Display
    global List
    ToDoDel = ItemName.get()
    new_f = List.readlines()
    List.seek(0)
    for line in new_f:
        if ToDoDel not in line:
            List.write(line)
    List.truncate()
    Display['text'] = List.readlines()
ItemName是输入框。Display是显示待办事项列表的标签。列表是以下变量:

List = open('***/***/To-Do_List.txt','r+')

这个程序运行得很好,但是我不能添加这个删除函数,因为它会删除文件中的所有文本。按下“删除项目”按钮时调用函数dele。非常感谢您的帮助。

您遇到问题的最可能原因是您试图修改列表,同时也在对其进行迭代。遇到类似问题的其他人的帖子


我的建议是,在循环中跟踪要修改的索引,然后在循环完成后删除它们。

我对这个想法不熟悉,所以你能在我的代码中给我举个例子吗?也许这里的问题是我不熟悉tkinter,但我对代码的理解是,你正在收集文件的行(new\f)然后迭代它(for循环)并在for循环中修改列表(list.write)。你不应该修改你正在循环的任何内容。是的,谢谢。我发现new_f没有内容,因为我在调用变量之前没有更新文件。不过,谢谢你的帮助。很高兴你找到了答案