微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我按下菜单按钮时无法读取数据

如何解决当我按下菜单按钮时无法读取数据

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的特定数据,例如当我按下按钮Data File时,我想显示markdata.dat和121成绩按钮我想显示grade_data的第一个字符串等于121的数据。请问是否需要循环工作来加载满足条件的行的数据?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。