Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2014 12:25:21

Yura_Lemeshko
Зарегистрирован: 2014-09-09
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка

Здравствуйте, здесь выполняется сортировка. При нажатии на кнопку сортировки информацию ищет в назначенной папке перебирая файлы которые там находятся находит заданные слова поиска и выводит результат(ы) в назначенное поле. Вопрос.
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 '
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()

Отредактировано Yura_Lemeshko (Сен. 12, 2014 12:27:14)

Прикреплённый файлы:
attachment 1111.png (281,5 KБ)

Офлайн

#2 Сен. 13, 2014 12:18:19

AZJIO
Зарегистрирован: 2014-08-27
Сообщения: 53
Репутация: +  -5  -
Профиль   Отправить e-mail  

Сортировка

Yura_Lemeshko
Вам же в предыдущей теме сказали, используйте теги, чтобы код был нормально читаемым и копируемым. На панели редактирования поста есть кнопка с раскрывающимся списком языков.



_________________________________________
Python_Examples.7z

Офлайн

#3 Сен. 14, 2014 12:11:50

Yura_Lemeshko
Зарегистрирован: 2014-09-09
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка

AZJIO
root.mainloop()

Как-то так.

# -*- 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'Огляди, ЕО, атестацiя',  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['text'])               # u'интерпритатор не понимает укр. i  '
			elif (var.get() == 2):                              # u'так что заменил её везде на англ. i :/'
				podr = str(rbutton_2['text'])
			elif (var.get() == 3):
				podr = str(rbutton_3['text'])        
			poisk = podr
				
		if labVR.winfo_viewable():
			if (varVR.get() == 1):                                
				VR = str(rb1['text'])              
			elif (varVR.get() == 2):                              
				VR = str(rb2['text'])
			elif (varVR.get() == 3):
				VR = str(rb3['text'])  
			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()

Отредактировано Yura_Lemeshko (Дек. 3, 2014 13:50:31)

Офлайн

#4 Сен. 15, 2014 00:52:37

AZJIO
Зарегистрирован: 2014-08-27
Сообщения: 53
Репутация: +  -5  -
Профиль   Отправить e-mail  

Сортировка

Yura_Lemeshko
Файл надо закрывать сразу после чтения.
В этой строке с бинарниками работает?

if poisk in text:
xls не текстовый файл, поначалу выдавал ошибка в функции f.read(), а когда добавил флаг b - бинарный, то в вышеуказанной строке стал выводить ошибки.



_________________________________________
Python_Examples.7z

Офлайн

#5 Сен. 15, 2014 01:26:04

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Сортировка

Говнокодер
Файл надо закрывать сразу после чтения.

Не надо. Для этого существует контекстный менеджер.

Говнокодер
b - бинарный, то в вышеуказанной строке стал выводить ошибки.

Для чтения данных из формата .xls существует специальный модуль.


P.S. Не пишите о том, чего Вы не знаете. Хватит пудрить людям мозги идиотскими советами.

Отредактировано 4kpt_II (Сен. 15, 2014 01:29:51)

Офлайн

#6 Сен. 15, 2014 11:32:59

AZJIO
Зарегистрирован: 2014-08-27
Сообщения: 53
Репутация: +  -5  -
Профиль   Отправить e-mail  

Сортировка

Yura_Lemeshko
По поводу сортировки: Возможно есть стиль для Listbox, но в описании не увидел, но при вставке в Listbox пункты находятся в том порядке в котором вставлены. Отсюда вывод, их надо вставлять заранее отсортировав. Можно из цикла перебора файлов вставлять не в Listbox, а в список, далее сортировать список функцией sorted, и вставлять уже сортированный список.
По поводу скриншота с вопросом “как открыть файл”, пока не знаю. Eсли у вас Windows и вы не планируете переходить на Linux, то попробуйте AutoIt в качестве языка (справка на русском, ответы на форуме в ту же минуту в 3-x вариантах, вашу задачу писать 5 минут, с запуском и сортировкой)



_________________________________________
Python_Examples.7z

Офлайн

#7 Сен. 15, 2014 11:56:17

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Сортировка

Говнокодер
По поводу скриншота с вопросом “как открыть файл”, пока не знаю.

Не знаете, так не советуйте вообще. Для открытия связанных файлов в винде можно использовать:

os.startfile(path_to_file)

В лине модуль subprocess. Его можно и в винде, но там есть некоторые ньюансы с названиями с русскими буквами.

P.S. AutiIt - это не язык программирования. Это кал. Идите на нем дальше и пишите. Не мешайте другим тупыми советами уровня “пока не знаю”, поэтому нужно учить другой язык.

Офлайн

#8 Сен. 18, 2014 12:04:27

Yura_Lemeshko
Зарегистрирован: 2014-09-09
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка

4kpt_II

Не пойму, в чем ошибка с сортировкой по виду работ.
os.startfile()
интерестно, а как у меня его применить?
P.S. Поможет в решении задания — открытие файла кликом по отсортированом названию?

Офлайн

#9 Сен. 19, 2014 13:18:08

Yura_Lemeshko
Зарегистрирован: 2014-09-09
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка

4kpt_II

Сделал так. Вызывает только файл путь которого прописан.
1. Не пойму как в
os. startfile(“Путь”) записать. Выходит указываем папку откуда файлы находятся и должны открываться.

from tkinter import *
import tkinter.filedialog as fdialog
from tkinter.filedialog import *
import os
import subprocess
root = Tk()
def hello(event):
	os.startfile('C:\Python33\Тести\Тест.doc')
#widget = Button (None, text = "Hello word")
#widget.pack()
#widget.bind('<Double-1>', hello)
lb = Listbox(root)
list1 = ["q"]
for item in list1:
	lb.insert(END, item)
lb.pack()
lb.bind('<Double-Button-1>', hello)
root.mainloop()

Как перенести выше указанный код что бы, что бы можно было отсортированные файлы?

# -*- coding: UTF-8 -*-
 
from tkinter import *
import tkinter.filedialog as fdialog
from tkinter import messagebox
from tkinter.messagebox import *
    
import os 
root = Tk()
root.geometry('800x550')
root.title('Окно оформления')
root.resizable(width = False, height = False)
#Каталог из которого будем брать файлы (напиши свой)
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='ТОВ СРБУ "Полтавалiфт"',variable=var,value=1)
	rbutton_2=Radiobutton(winS,text='ДП "Полтавалiфт"',      variable=var,value=2)
	rbutton_3=Radiobutton(winS,text='ПП "Полтавалiфт"',      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['text'])               # u'интерпритатор не понимает укр. i  '
			elif (var.get() == 2):                              # u'так что я заменил её везде на англ. i :/'
				podr = str(rbutton_2['text'])
			elif (var.get() == 3):
				podr = str(rbutton_3['text'])        
			poisk = podr
				
		if labVR.winfo_viewable():
			if (varVR.get() == 1):                                
				VR = str(rb1['text'])              
			elif (varVR.get() == 2):          	                    
				VR = str(rb2['text'])
			elif (varVR.get() == 3):
				VR = str(rb3['text'])  
			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(".doc"):
				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 = 'search!', 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 = 'Сортування', command = open_winS)
bSort.place(x = 400, y = 400)
root.mainloop()

Офлайн

#10 Сен. 23, 2014 16:49:16

Yura_Lemeshko
Зарегистрирован: 2014-09-09
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка

# -*- coding: UTF-8 -*-
		
from tkinter import *
import tkinter.filedialog as fdialog
from tkinter import messagebox
from tkinter.messagebox import *
    
import os 
root = Tk()
root.geometry('800x550')
root.title('Окно оформления')
root.resizable(width = False, height = False)
#Каталог из которого будем брать файлы (напиши свой)
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='ТОВ СРБУ "Полтавалiфт"',variable=var,value=1)
	rbutton_2=Radiobutton(winS,text='ДП "Полтавалiфт"',      variable=var,value=2)
	rbutton_3=Radiobutton(winS,text='ПП "Полтавалiфт"',      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['text'])               # u'интерпритатор не понимает укр. i  '
			elif (var.get() == 2):                              # u'так что я заменил её везде на англ. i :/'
				podr = str(rbutton_2['text'])
			elif (var.get() == 3):
				podr = str(rbutton_3['text'])        
			poisk = podr
				
		if labVR.winfo_viewable():
			if (varVR.get() == 1):                                
				VR = str(rb1['text'])              
			elif (varVR.get() == 2):          	                    
				VR = str(rb2['text'])
			elif (varVR.get() == 3):
				VR = str(rb3['text'])  
			elif (varVR.get() == 4):
				VR = str(rb4['text'])  
			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(".doc"):
				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')
				
	
	def hello(event):
		os.startfile("C:\Python33\Тести") # Так открывает только папку в которой файл храниться.
	#	os.startfile('C:\Python33\Тести\'+t1.get(t1.curselection())) пытался так но не выходит.
	t1 = Listbox(winS, width = 59, height = 10)
	t1.place(x = 10, y = 200)
	t1.bind("<Double-Button-1>", hello)	
	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 = 'search!', 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 = 'Сортування', command = open_winS)
bSort.place(x = 400, y = 400)
root.mainloop()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version