1. Не пойму в чем проблема не ищет по критерию “Вид работ”.
2. Нужно что бы, при нажатии на элемент из отсортированного списка открывало тот файл где нашли вариант.
# -*- coding: UTF-8 -*-
from tkinter import *
import tkinter.filedialog as fdialog
from tkinter import messagebox
from tkinter.messagebox import *
root = Tk()
root.geometry('800x450')
root.title('Окно оформления')
root.resizable(width = False, height = False)
#——————–u'Попытка сортировки'————–#
import os
#Каталог из которого будем брать файлы (написать свой)
directory = ‘C:\Python33’
files = os.listdir(directory)
global search_
def open_winS():
global search_
global labPodr, rbutton_1, rbutton_2, rbutton_3#, labData, editData
global rb1, rb2, rb3, rb4, labNom, editNom
global labRab, editRab, labVR, value1
winS = Toplevel(root)
winS.title(“search”)
winS.geometry(“500x420”)
#label_111 = Label(winS, text = ‘AAAAAAAA’)
#label_111.pack()
labNom = Label(winS, text = u'введите номер:')
editNom = Entry(winS)
labPodr = Label(winS, text = u'выберите подрядчика:')
var = IntVar()
rbutton_1=Radiobutton(winS,text='Много',variable=var,value=1)
rbutton_2=Radiobutton(winS,text='Ёжиков', variable=var,value=2)
rbutton_3=Radiobutton(winS,text='В тумане“', variable=var,value=3)
labVR = Label(winS, text = u'выберите вид работ:')
varVR = IntVar()
rb1 = Radiobutton(winS, text = u'КВР', variable=varVR, value=1)
rb2 = Radiobutton(winS, text = u'Монтаж, п/н', variable=varVR, value=2)
rb3 = Radiobutton(winS, text = u'Проектнi роботи', variable=varVR, value=3)
rb4 = Radiobutton(winS, text = u'Огляди, ЕО, атестація', variable=varVR, value=4)
labRab = Label(winS, text = u” Об'єкт робiт (адреса):")
editRab = Entry(winS,bd = 5, width = 35)
def lb1_change(evt):
global labPodr, rbutton_1, rbutton_2, rbutton_3#, labData, editData
global rb1, rb2, rb3, rb4, labNom, editNom
global labRab, editRab, labVR, value1
value1 = lb1.get(lb1.curselection())
if value1 == u'по подрядчику':
rb1.place_forget()
rb2.place_forget()
rb3.place_forget()
rb4.place_forget()
labRab.place_forget()
editRab.place_forget()
labVR.place_forget()
labPodr.place(x = 150, y = 20)
rbutton_1.place(x = 150, y = 50)
rbutton_2.place(x = 150, y = 80)
rbutton_3.place(x = 150, y = 110)
elif value1 == u'по виду работ':
labPodr.place_forget()
labNom.place_forget()
editNom.place_forget()
rbutton_1.place_forget()
rbutton_2.place_forget()
rbutton_3.place_forget()
labRab.place_forget()
editRab.place_forget()
labVR.place(x = 150, y = 20)
rb1.place(x = 150, y = 50 )
rb2.place(x = 150, y = 80 )
rb3.place(x = 150, y = 110 )
rb4.place(x = 150, y = 140 )
elif value1 == u'по номеру':
rbutton_2.place_forget()
rbutton_3.place_forget()
labPodr.place_forget()
rb1.place_forget()
rb2.place_forget()
rb3.place_forget()
rb4.place_forget()
labRab.place_forget()
editRab.place_forget()
labVR.place_forget()
labNom.place(x = 150, y = 20)
editNom.place(x = 150, y = 50, width = 70)
elif value1 == u'по объекту работ':
rbutton_1.place_forget()
rbutton_2.place_forget()
rbutton_3.place_forget()
labPodr.place_forget()
rb1.place_forget()
rb2.place_forget()
rb3.place_forget()
rb4.place_forget()
labNom.place_forget()
editNom.place_forget()
labVR.place_forget()
labRab.place(x = 150, y = 20 )
editRab.place(x = 150, y = 50)
def search_():
global directory, files, value1
if labPodr.winfo_viewable():
if (var.get() == 1): # u'Тут какая-то муть с кодировкой.'
podr = str(rbutton_1) # u'интерпритатор не понимает укр. i ‘
elif (var.get() == 2): # u’так что заменил её везде на англ. i
![](/static/djangobb_forum/img/smilies/hmm.png)
podr = str(rbutton_2)
elif (var.get() == 3):
podr = str(rbutton_3)
poisk = podr
if labVR.winfo_viewable():
if (varVR.get() == 1):
VR = str(rb1)
elif (varVR.get() == 2):
VR = str(rb2)
elif (varVR.get() == 3):
VR = str(rb3)
poisk = VR
if labNom.winfo_viewable():
poisk = editNom.get()
if labRab.winfo_viewable():
poisk = editRab.get()
print (poisk)
for i in files:
if i.endswith(“.xls”):
print (i)
f = open(i, ‘r’)
text = f.read()
if poisk in text:
t1.insert(END, ‘(!)’+str(value1)+“ ”+str(poisk)+' было найдено в ‘ + i+’\n\n')
f.close()
#else:
#t1.insert(END, poisk +'\nне было найдено в ‘ + str(directory) +’/'+ str(i)+'\n\n')
t1 = Listbox(winS, width = 59, height = 10)
t1.place(x = 10, y = 200)
list1=[u'по подрядчику',u'по виду работ',
u'по номеру',u'по объекту работ']
lab1 = Label(winS, text = u'Выбрать сортировку: ‘)
lab1.place(x = 5, y = 20)
lb1 = Listbox(winS, height = 6)
lb1.place(x = 5, y = 50)
lb1.bind(’<<ListboxSelect>>', lb1_change)
for item in list1:
lb1.insert(END, item)
but1 = Button(winS, text = ‘Искать’, command = search_)
but1.place(x = 330, y = 380)
def dell():
t1.delete(0,END) # очистка
clean = Button(winS, text = ‘Очистить’, command = dell )
clean.place(x = 400, y = 380)
#———————menu_bar_winS————————–#
menu = Menu(winS)
winS.config(menu=menu)
def close_this():
root.destroy()
def clear_list():
t1.delete(0,END)
filemenu = Menu(menu)
menu.add_cascade(label=“File”, menu=filemenu)
#filemenu.add_command(label=“Open…”)
#filemenu.add_command(label = “Save as”, command = save_as)
#filemenu.add_separator()
filemenu.add_command(label = “Clear”, command = clear_list)
filemenu.add_separator()
filemenu.add_command(label=“Exit”, command = close_this)
#——————–menu_bar_end_winS————————#
winS.mainloop()
bSort = Button(root, text = ‘sort this’, command = open_winS)
bSort.place(x = 700, y = 400)
root.mainloop()