如何使复选框/复选框在单击时更改文本文件?(使用Python和tkinter库)

如何使复选框/复选框在单击时更改文本文件?(使用Python和tkinter库),python,checkbox,tkinter,save,text-files,Python,Checkbox,Tkinter,Save,Text Files,所以,我决定做一个构建程序的项目,这样我就可以记录我的书,我借来的,我读过的,等等。对于“数据库”,我使用的是.txt文件,其中包含书名,作者等。一行一个,所有的书都与作者共享同一行,但它们在不同的文件中。例如,我有: FILE A: | FILE B: Harry Potter | J.K. Rowling The Fellowship of the Ring |

所以,我决定做一个构建程序的项目,这样我就可以记录我的书,我借来的,我读过的,等等。对于“数据库”,我使用的是.txt文件,其中包含书名,作者等。一行一个,所有的书都与作者共享同一行,但它们在不同的文件中。例如,我有:

FILE A:                     |              FILE B:
Harry Potter                |           J.K. Rowling
The Fellowship of the Ring  |         J.R.R. Tolkien
等等,以及所有其他信息。
现在,我为每本书添加了一个checkbutton,这样我就可以标记我读过的书,并创建了一个名为read的.txt文件,每一行都有“SELECTED”或“NOT-SELECTED”来表示checkbutton的状态。
一、 然后通过运行read.txt文件的for循环将checkbutton添加到程序中,并根据文件中的行数添加尽可能多的checkbutton。如果文件中的行显示为“SELECTED”,则它会将checkbutton设置为SELECTED(
checkbutton.SELECTED()
),否则它只会创建checkbutton。
现在,我想要的是,只要按下相应的行按钮,程序就会更改read.txt文件中的行,因此,如果我按下哈利波特的按钮,例如,read.txt中的第一行将更改为“选中”,如果我再次单击它,它将改回“未选中”。
我首先想到的是用每个检查按钮的值创建一个列表,然后当按下任何检查按钮时,它将调用一个函数来创建一个新列表,其中包含每个按钮的新值。然后,它将比较这两个列表,并对第一个列表进行必要的更改,然后更改文件。问题是,我不知道如何创建secont列表来进行比较,因此我正在寻求有关如何创建的帮助。不过,如果有人有更好的主意,那就太受欢迎了


很抱歉发了这么长的帖子。

我建议使用模块而不是纯文本文件。它处理以逗号分隔值电子表格格式存储的数据,并用于基本字段,如
标题
作者
是读取的
借用的
,等等。它应该可以很好地工作,并且比
sqlite3
更容易处理,因为您不需要学习SQL或设计数据库模式。尽管有一些限制,所以我强烈建议阅读我链接的文档,看看它是否适合您的需要。如果你的项目变得更复杂,那么阅读是最好的选择。

我建议使用模块而不是纯文本文件。它处理以逗号分隔值电子表格格式存储的数据,并用于基本字段,如
标题
作者
是读取的
借用的
,等等。它应该可以很好地工作,并且比
sqlite3
更容易处理,因为您不需要学习SQL或设计数据库模式。尽管有一些限制,所以我强烈建议阅读我链接的文档,看看它是否适合您的需要。如果你的项目变得更复杂,那么阅读是你最好的选择。

你的问题更多的是概念性的,而不是与编程相关的,因为在可以完美完成工作的情况下使用纯文本文件意味着大量的开销。不幸的是,它太本地化了,我不认为它可以作为未来用户的参考,所以我认为这篇文章超出了StackOverflow的范围。作为一般建议,我强烈建议您在项目中使用数据库,并删除txt文件。是的,我知道,这只是因为我是个新手,所以我只是尝试最简单的方法。如果可能的话,您能告诉我一些关于sqlite3的事情吗?您的问题更多的是概念性的,而不是与编程相关的,因为在能够完美完成工作的情况下使用纯文本文件意味着大量的开销。不幸的是,它太本地化了,我不认为它可以作为未来用户的参考,所以我认为这篇文章超出了StackOverflow的范围。作为一般建议,我强烈建议您在项目中使用数据库,并删除txt文件。是的,我知道,这只是因为我是个新手,所以我只是尝试最简单的方法。如果可能的话,你能告诉我一些关于sqlite3的事情吗?