python - 如何获取复选框值以保存到文本文件中?
问题描述
这是我的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 文件中?
解决方案
你的var_states
函数实际上并没有返回任何东西。它只是打印到控制台。将其更改为:
def var_states():
res = "Option 1: %d\nOption 2: %d" % (var1.get(), var2.get())
print(res)
return res
此外,您应该使用以下命令,而不是手动open
ing 和ing 文件: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
该文件在块的末尾自动d with
。
推荐阅读
- android - Android 在 docker 容器中构建
- alexa - 如何为插槽的 URL 参考创建 Alexa 目录
- pandas - Pandas:使用 SimpleImputer 将数据框转换为系列?
- reactjs - Antd design InputNumber 在尝试更改值时闪烁问题
- node.js - 将 JSON 转换为 XLSX 并在 NodeJS 中下载
- java - 模拟初始上下文
- javascript - 如何访问匹配的 RegExp 特殊表达式?
- python - 使用 Python 从 .json 文件中删除特定行?
- android - 如何与 mvvm 同步?
- python - django-admin.py startproject 库存。不管用?