【发布时间】:2017-08-16 10:45:04
【问题描述】:
我正在使用 tkinter 来管理笔记检索程序的 GUI。我可以通过键入关键字并在文本字段中按 Enter 来提取我的笔记,但我想将我的字典移动到一个文件中,这样我的代码空间就不会被大量字典填满。
我一直在环顾四周,但我不确定我将如何去做。
我的目录中有文件。我知道我可以使用open(“filename”, “mode”) 打开所述文件进行阅读,但是我如何调用注释的每个部分。
例如,我现在所做的只是从我的字典中调用一个关键字,然后让它将该关键字的定义写入我的 GUI 中的一个文本框中。我可以从文件中做同样的事情吗?
我将如何从文件中读取关键字并将定义返回到变量或直接返回到文本框?现在我只需要弄清楚如何读取数据。我想一旦我知道我可以弄清楚如何写新笔记或编辑现有笔记。
这就是我现在的设置。
调用我的函数
root.bind('<Return>', kw_entry)
如何将我的定义返回到我的文本框
def kw_entry(event=None):
e1Current = keywordEntry.get().lower()
if e1Current in notes:
root.text.delete(1.0, END)
root.text.insert(tkinter.END, notes[e1Current])
root.text.see(tkinter.END)
else:
root.text.delete(1.0, END)
root.text.insert(tkinter.END, "Not a Keyword")
root.text.see(tkinter.END)
【问题讨论】:
-
你研究过泡菜吗?
-
@timgeb 我对一般的编程很陌生,对 python 也很陌生。我对 python 和 tkinter 之外的知识知之甚少。我会检查泡菜,看看它是否是我要找的。感谢您的信息。
-
参见Saving an Object (Data persistence) 以获取使用
pickle模块的示例。它将适用于值可提取的字典。 -
如果您只存储诸如字典、列表、数字和字符串之类的东西,JSON 非常棒。它还具有可以被许多其他语言阅读的优势......你可以自己阅读它。 Pickle 存储更多数据类型,但特定于 python。还有许多其他选择,包括
msgpack,它类似于 json,但在磁盘上更紧凑。这对于微不足道的几兆数据来说不是问题。 -
将
indent=" "添加到json.dump调用中。
标签: python file dictionary tkinter