Pickle 输出不可读

Pickle output is not readable

正在开发一个保存笔记的笔记程序,将每个笔记显示为 tkinter window。将笔记保存在 pickled 文件中,每个 pickled 对象显示为单独 window 上的标签。

    global notes
    load_color()
    f = open('m.data', 'rb')
    try:
        while True:
            try:
                notes = pickle.load(f)
            except EOFError:
                break
            root = Tk()
            root.title('Note')
            note_label = Label(root, text=notes, fg=color).pack(side=TOP)
            root.mainloop()
    except EOFError:
        pass

这是在单独 window 上显示每个对象的函数。显示笔记时,每条笔记都是这样显示的:

64832376note

颜色显示正确。

不确定为什么会这样。它应该显示我在 window 中作为注释输入的内容。如果这还不够解释,这里是完整的代码:https://pastebin.com/6rpeFfED 提前致谢

因为note()函数里面的语句note = str(input("Take a note: "))会将输入的笔记保存到本地变量note中。然后你在 dump_notes() 函数中引用 note,它实际上引用了 note() 函数的引用。

要解决此问题,最简单的方法是修改 dump_notes() 函数以接受参数,例如 dump_notes(note),然后将 note() 函数中的 dump_notes() 更新为 dump_notes(note).