获取文本框数值并调用方法显示在文本框内
import PySimpleGUI as sg
import re
import datetime,time
import csv
import json
def xiaoshishuju(zhanhao,shijian):
#设置正则匹配的公式
zhengze=str(zhanhao)+r'(\s|\d|/)+(=)'
with open('D:\\xiaoguan\\'+shijian+'00.txt')as aws:
#读取所有文件数据
wenjianneirong=aws.read()
#以正则方式来匹配以站号的数据
#正则的匹配方法re.search(参数1:正则公式,参数2:要匹配的数据)
quyuzhan=re.search(zhengze,wenjianneirong)
#判断否范围为空
if quyuzhan == None:
print('找不到'+zhanhao)
return None
else:
#获取匹配处来的数据
quyuzhanshuju=quyuzhan.group()
#把匹配出来的数据作为参数来给方法来调用
return quyuzhanshuju
#获取数据,分割并更新控件
def xianshushuju(shuju):
window['-zhaohao-'].update(shuju[0:5])
window['-wendu-'].update(shuju[58:61])
window['-shidu-'].update(shuju[130:133])
window['-fengxiang-'].update(shuju[58:61])
window['-fengsu-'].update(shuju[62:65])
window['-yuliang-'].update(shuju[100:104])
window['-qiya-'].update(shuju[152:157])
window['-nengjiandu-'].update(shuju[281:286])
sg.theme('BluePurple')
layout = [[sg.Text('请输入站号:',size=(15,1)),sg.InputText(key='-INzhaohao-',size=(20,1))],
[sg.Text('请输入时间:',size=(15,1)),sg.Input(key='-INriqi-',size=(20,1))],
[sg.Text('站号:',size=(15,1)),sg.Input(key='-zhaohao-',size=(10,1))],
[sg.Text('温度:',size=(15,1)),sg.Input(key='-wendu-',size=(10,1))],
[sg.Text('相对湿度:',size=(15,1)),sg.Input(key='-shidu-',size=(10,1))],
[sg.Text('10分钟平均风向:',size=(15,1)),sg.Input(key='-fengxiang-',size=(10,1))],
[sg.Text('10分钟平均风速:',size=(15,1)),sg.Input(key='-fengsu-',size=(10,1))],
[sg.Text('小时累计降雨量:',size=(15,1)),sg.Input(key='-yuliang-',size=(10,1))],
[sg.Text('气压:',size=(15,1)),sg.Input(key='-qiya-',size=(10,1))],
[sg.Text('能见度:',size=(15,1)),sg.Input(key='-nengjiandu-',size=(10,1))],
[sg.Button('查询'), sg.Exit()]]
window = sg.Window('区域站要素查询', layout)
while True:
event, values = window.read()
#print(event, values)
if event in (None, 'Exit'):
break
elif event == '查询':
#当点击查询就获取站号和时间作为参数去获取该站点数据
shuju=xiaoshishuju(str(values['-INzhaohao-']),str(values['-INriqi-']))
#如果没有站点数据提示没有数据
if shuju == None:
sg.popup('提示','找不到'+str(values['-INzhaohao-'])+'站的数据')
#如果有站点数据把数据作为参数调用方法
else:
#调用方法
xianshushuju(shuju)
window.close()
数据格式为长文本
本文介绍了一种使用Python和PySimpleGUI从特定文件中解析文本数据,并将这些数据展示在图形用户界面的方法。通过正则表达式匹配指定站号的数据,然后将获取到的气象信息如温度、湿度等更新到相应的输入框中。
2782

被折叠的 条评论
为什么被折叠?



