如何获取复选框值以保存到文本文件中?

时间:2019-09-12 08:21:27

标签: python tkinter output

这是我的python代码:

from tkinter import *
master = Tk()

def var_states():
   print("Option 1: %d\nOption 2: %d" % (var1.get(), var2.get()))

Label(master, text="Option").grid(row=0, sticky=W)
var1 = IntVar()
Checkbutton(master, text="Option 1", variable=var1).grid(row=1, sticky=W)
var2 = IntVar()
Checkbutton(master, text="Option 2", variable=var2).grid(row=2, sticky=W)
Button(master, text='Quit', command=master.quit).grid(row=3, sticky=W, pady=4)
Button(master, text='Show', command=var_states).grid(row=4, sticky=W, pady=4)




mainloop()

这将显示以下屏幕:

enter image description here

如果选中一个复选框并单击,则显示CMD的输出为:

enter image description here

接下来,我正在尝试将输出保存到.txt文件中。这是我尝试过的:

f = open("output.txt", "w")
f.write(var_states())
f.close()

#open and read the file after the appending:
f = open("output.txt", "r")
print(f.read())

但这会返回以下错误:TypeError: write() argument must be str, not None

但是如果我将此f.write(var_states())转换为f.write(str(var_states()))

它可以完成工作,但是将None打印到.txt文件中。

当CMD输出时,如何获取复选框值以保存到.txt文件中?

1 个答案:

答案 0 :(得分:0)

您的var_states函数实际上未返回任何内容。它只是打印到控制台。更改为:

def var_states():
   res = "Option 1: %d\nOption 2: %d" % (var1.get(), var2.get())
   print(res)
   return res

此外,您应该使用open

,而不是手动closewith文件
with open("output.txt", "w") as f:
  f.write(var_states())

#open and read the file after the appending:
with open("output.txt", "r") as f:
  print(f.read())

close块末尾,文件自动with被保存。