首页 > 解决方案 > 根据 txt 文件加载复选框值

问题描述

我正在尝试从文本文件中加载复选框值。

让我解释..

这是屏幕:

点击这里查看图片

我有一段代码将结果保存到 .txt 文件中。

这是 .txt 文件:

点击这里查看图片

现在,当我关闭并重新打开 .py 文件时,一切都会重置。

我想实现一个按钮,该按钮将从 txt 文件加载最后一行并执行以下操作:

如果option10并且option21来自文本文件,当单击加载时,option2复选框将是唯一选中的一个。

像这样:

加载 txt 文件时的预期结果

如何做到这一点?

这是我当前的代码:

from tkinter import *

master = Tk()
master.minsize(200, 100)

var = IntVar()
var2 = IntVar()

a = Checkbutton(master, text="Option 1", variable=var)
a.pack()

b = Checkbutton(master, text="Option 2", variable=var2)
b.pack()

def save():
    text_file = open("text.txt", "a")
    text_file.write("Option1 %d Option2 %d \n" % (var.get(), var2.get()))
    text_file.close()

Button(master, text = "Save", command = save ).pack()

mainloop()

标签: pythontkintertkinter.checkbutton

解决方案


这是按照您的要求进行操作的一种方法。

from tkinter import *
import os

if os.path.isfile('text.txt'):
    with open("text.txt", "r") as f:
        lineList = f.readlines()
        _, option1, _, option2 = lineList[-1].split()
else:
    option1 = '0'
    option2 = '0'

master = Tk()
master.minsize(200, 100)

var = IntVar()
var2 = IntVar()

a = Checkbutton(master, text="Option 1", variable=var)
if option1 == '1':
    a.select()
a.pack()

b = Checkbutton(master, text="Option 2", variable=var2)
if option2 == '1':
    b.select()
b.pack()

def save():
    text_file = open("text.txt", "a")
    text_file.write("Option1 %d Option2 %d \n" % (var.get(), var2.get()))
    text_file.close()

Button(master, text = "Save", command = save ).pack()

mainloop()

但是有理由继续附加到文本文件吗?如果没有,那么在每次保存时覆盖文件会更快更有效。


推荐阅读