【问题标题】:How to get checkbox values to save into a text file?如何获取复选框值以保存到文本文件中?
【发布时间】:2019-09-12 08:21:27
【问题描述】:

这是我的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()

这将打开以下屏幕:

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

接下来,我尝试将输出保存到 .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 文件中?

【问题讨论】:

    标签: python tkinter output


    【解决方案1】:

    你的var_states 函数实际上并没有返回任何东西。它只是打印到控制台。将其更改为:

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

    另外,您应该使用with,而不是手动使用opening 和closeing 文件:

    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())
    

    该文件在with 块的末尾自动为closed。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多