这是我的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文件中?
答案 0 :(得分:0)
您的var_states
函数实际上未返回任何内容。它只是打印到控制台。更改为:
def var_states():
res = "Option 1: %d\nOption 2: %d" % (var1.get(), var2.get())
print(res)
return res
此外,您应该使用open
:
close
和with
文件
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
被保存。