level 3
122086459
楼主
输入正确数据执行后出现以下错误,不知道怎么解决,请帮下忙
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Python\Python37\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "I:/3.py", line 51, in personset
re_text.insert(tk.END,container[number]+'\n'+result[number]+'\n'+'时间:'+sendtime+'\n')
AttributeError: 'NoneType' object has no attribute 'insert'
代码:
#! /usr/bin/env python
# coding:utf-8
import os,datetime,re
from tkinter import *
from tkinter import ttk
w1='<EquipmentIdentification><ID>'
w2='</ID></EquipmentIdentification>'
w3='</Code><Text>'
w4='</Text>'
w5='<SendTime>'
w6='</SendTime>'
base_dir = 'G:/InBox'
list = os.listdir(base_dir)
filelist = []
for i in range(0, len(list)):
path = os.path.join(base_dir,list[i])
if os.path.isfile(path):
filelist.append(list[i])
def personset(*args):
today = datetime.date.today()
howmanyday=hday.get()
yesterday = today - datetime.timedelta(days=howmanyday)
yesterday = yesterday.strftime('%Y-%m-%d')
containerno=cno.get()
for i in range(0, len(filelist)):
path = os.path.join(base_dir, filelist[i])
timestamp = os.path.getmtime(path)
date = datetime.datetime.fromtimestamp(timestamp)
date = date.strftime('%Y-%m-%d')
if date > yesterday:
f=open('G:InBox/'+filelist[i],'r',encoding='UTF-8')
buff=f.read()
pat1=re.compile(w1+'(.*?)'+w2,re.S)
container=pat1.findall(buff)
if containerno in container:
number=container.index(containerno)
pat2=re.compile(w3+'(.*?)'+w4,re.S)
result=pat2.findall(buff)
pat3=re.compile(w5+'(.*?)'+w6,re.S)
sendtime=pat3.findall(buff)
sendtime="".join(sendtime)
re_text.insert(tk.END,container[number]+'\n'+result[number]+'\n'+'时间:'+sendtime+'\n')
re_text.update()
else:
continue
return
tk = Tk()
tk.title("状态查询")
tk.geometry('350x250+%d+%d'%((tk.winfo_screenwidth()-295)/2,(tk.winfo_screenheight()-200)/2))
tk.resizable(width=True, height=True)
mainframe=ttk.Frame(tk,padding='3 3 12 12')
mainframe.grid(column=0,row=0,sticky=(N,W,E,S))
mainframe.columnconfigure(0,weight=1)
mainframe.rowconfigure(0,weight=1)
hday=IntVar()
hday.set(1)
cno=StringVar()
ttk.Label(mainframe,text='天数:').grid(row=0,sticky=W,padx=5)
ttk.Label(mainframe,text='号码:').grid(row=1,sticky=W,padx=5)
hday_entry=ttk.Entry(mainframe,textvariable=hday)
hday_entry.grid(row=0,sticky=W,column=1)
cno_entry=ttk.Entry(mainframe,textvariable=cno)
cno_entry.grid(row=1,sticky=W,column=1)
ttk.Button(mainframe,text='查询',command=personset).grid(row=0,rowspan=2,column=2,columnspan=2,sticky=W+E+N+S,padx=7,pady=2)
re_text=Text(tk,width=40,height=10).grid(row=2,column=0,rowspan=1,columnspan=4,sticky=W,padx=5,pady=2)
for child in mainframe.winfo_children():child.grid_configure(padx=5, pady=5)
cno_entry.focus()
tk.bind('<Return>',personset)
tk.mainloop()
2019年01月30日 13点01分
1
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Python\Python37\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "I:/3.py", line 51, in personset
re_text.insert(tk.END,container[number]+'\n'+result[number]+'\n'+'时间:'+sendtime+'\n')
AttributeError: 'NoneType' object has no attribute 'insert'
代码:
#! /usr/bin/env python
# coding:utf-8
import os,datetime,re
from tkinter import *
from tkinter import ttk
w1='<EquipmentIdentification><ID>'
w2='</ID></EquipmentIdentification>'
w3='</Code><Text>'
w4='</Text>'
w5='<SendTime>'
w6='</SendTime>'
base_dir = 'G:/InBox'
list = os.listdir(base_dir)
filelist = []
for i in range(0, len(list)):
path = os.path.join(base_dir,list[i])
if os.path.isfile(path):
filelist.append(list[i])
def personset(*args):
today = datetime.date.today()
howmanyday=hday.get()
yesterday = today - datetime.timedelta(days=howmanyday)
yesterday = yesterday.strftime('%Y-%m-%d')
containerno=cno.get()
for i in range(0, len(filelist)):
path = os.path.join(base_dir, filelist[i])
timestamp = os.path.getmtime(path)
date = datetime.datetime.fromtimestamp(timestamp)
date = date.strftime('%Y-%m-%d')
if date > yesterday:
f=open('G:InBox/'+filelist[i],'r',encoding='UTF-8')
buff=f.read()
pat1=re.compile(w1+'(.*?)'+w2,re.S)
container=pat1.findall(buff)
if containerno in container:
number=container.index(containerno)
pat2=re.compile(w3+'(.*?)'+w4,re.S)
result=pat2.findall(buff)
pat3=re.compile(w5+'(.*?)'+w6,re.S)
sendtime=pat3.findall(buff)
sendtime="".join(sendtime)
re_text.insert(tk.END,container[number]+'\n'+result[number]+'\n'+'时间:'+sendtime+'\n')
re_text.update()
else:
continue
return
tk = Tk()
tk.title("状态查询")
tk.geometry('350x250+%d+%d'%((tk.winfo_screenwidth()-295)/2,(tk.winfo_screenheight()-200)/2))
tk.resizable(width=True, height=True)
mainframe=ttk.Frame(tk,padding='3 3 12 12')
mainframe.grid(column=0,row=0,sticky=(N,W,E,S))
mainframe.columnconfigure(0,weight=1)
mainframe.rowconfigure(0,weight=1)
hday=IntVar()
hday.set(1)
cno=StringVar()
ttk.Label(mainframe,text='天数:').grid(row=0,sticky=W,padx=5)
ttk.Label(mainframe,text='号码:').grid(row=1,sticky=W,padx=5)
hday_entry=ttk.Entry(mainframe,textvariable=hday)
hday_entry.grid(row=0,sticky=W,column=1)
cno_entry=ttk.Entry(mainframe,textvariable=cno)
cno_entry.grid(row=1,sticky=W,column=1)
ttk.Button(mainframe,text='查询',command=personset).grid(row=0,rowspan=2,column=2,columnspan=2,sticky=W+E+N+S,padx=7,pady=2)
re_text=Text(tk,width=40,height=10).grid(row=2,column=0,rowspan=1,columnspan=4,sticky=W,padx=5,pady=2)
for child in mainframe.winfo_children():child.grid_configure(padx=5, pady=5)
cno_entry.focus()
tk.bind('<Return>',personset)
tk.mainloop()