python - 按下菜单按钮时无法读取数据
问题描述
from tkinter import *
win = Tk()
win.title('Grade Processing System')
file = open('markdata.dat')
for row in file:
global grade_data
grade_data = row.split('_')
print(grade_data)
def data():
global grade_data
text.insert(END,('='*24+'markdata.dat'+'='*24+'\n'))
text.insert(INSERT,file.read())
def grade121():
grade121_stud = []
for grade in grade_data:
if grade[0] == '121':
grade121_stud.append(grade)
for student in grade121_stud:
text.insert(END,student)
def grade122():
grade122_stud = []
for grade in grade_data:
if grade[0] == '122':
grade122_stud.append(grade)
for student in grade122_stud:
text.insert(END,student)
menubar = Menu(win)
menubar.add_command(label='Data file',command=data)
menubar.add_command(label='121 Grade',command=grade121)
menubar.add_command(label='122 Grade',command=grade122)
menubar.add_command(label='Distribution')
menubar.add_command(label='Help')
win.config(menu=menubar)
global text
yScrollBar = Scrollbar(win)
yScrollBar.pack(side=RIGHT,fill=Y)
text = Text(win,height=70,width=100)
text.pack()
yScrollBar.config(command=text.yview)
text.config(yscrollcommand=yScrollBar.set)
file.close()
markdata.dat
121_50123456_lam tai man_85.5_80.0_80.0_90.0
121_50223456_li tai man_61.0_90.5_60.0_55.5
121_50323456_wong tai man_90.0_30.0_50.0_79.5
121_50423456_ng tai man_62.75_70.0_65.5_48.5
121_50523456_lau tai man_58.0_62.4_86.55_70.0
121_50623456_chui tai man_31.0_64.5_46.0_29.5
121_50723456_lim tai man_86.45_60.0_88.5_89.5
121_50823456_pok tai man_53.0_35.50_75.5_49.5
121_50923456_kim tai man_58.25_80.0_36.0_56.5
121_50023456_tsang tai man_35.5_20.0_55.5_79.0
121_50713456_lee tai man_26.45_30.0_35.5_30.5
121_50813456_po tai man_23.0_35.50_25.5_29.5
121_50913456_yim tai man_18.25_40.0_36.0_26.5
121_50013456_tse tai man_5.5_20.0_5.5_9.0
121_50999999_chan peter_80.00_80.00_60.0_80.5
122_51123456_lam tai man_70.0_60.0_70.0
122_51223456_li tai man_60.0_90.5_76.0
122_51323456_wong tai man_34.5_30.0_46.0
122_51423456_ng tai man_90.5_70.0_56.0
122_51523456_lau tai man_86.0_92.4_58.0
122_51623456_chui tai man_70.0_64.5_62.0
122_51723456_lim tai man_64.5_60.0_36.0
122_51823456_pok tai man_37.5_35.50_68.5
122_51923456_kim tai man_82.4_60.0_46.5
122_51023456_tsang tai man_15.0_20.0_26.0
122_50713456_lee tai man_86.45_80.0_85.5
122_50813456_po tai man_23.0_35.50_25.5
122_50913456_yim tai man_18.25_40.0_36.0
122_50013456_tse tai man_65.5_20.0_65.5
122_51999999_chan peter_80.00_80.00_80.0
现在当我print(grade_data)
工作时,但有一个问题是,如果我想读取 tkinter 的特定数据,例如当我按下按钮数据文件时,我想显示 markdata.dat 和 121 Grade 按钮的数据,我想显示Grade_data的第一个字符串等于121的数据。请问是for循环工作加载满足条件的行的数据吗?
解决方案
推荐阅读
- excel - 打印到 PDF 可以灵活打印有限页和另一张纸的宏
- sas - 管道如何使用 SAS 读取页面的所有信息?
- javascript - 向客户发送和显示密码的安全方式
- r - 使用 R 对预定组中的单词进行分类
- websockify - websockify 和自签名证书
- parsing - 使用camlp5导入Pcaml语法扩展OCaml的打印机
- python - 如何在 Seaborn clustermap 中分别绘制图例
- c# - 在视图中重新加载模型
- python - 仅使用 python 重命名特定子文件夹中的文件
- javascript - 如何使用 vba/ui-path/rest api 使用来自 Skype for business 的电子邮件 ID 获取人员状态?