Вопрос такого плана. При сортировке по месяцам нужно что бы, искало название месяца. Не знаю как это реализовать.
И еще одно, при сохранении как зделать так что бы, сохнаняло автоматически в .doc? Сейчас приходится вручную прописывать.
Помогите пожалуйста.
Да ) код говно.
Конечно сбрасываю много кода, так как в сортировке все “связано.”
# -*- coding: UTF-8 -*- #import sys, string, calendar #import time from tkinter import * import tkinter.filedialog as fdialog from tkinter import messagebox from tkinter.messagebox import * import os import datetime 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 rb10, rb20, rb30,rb40, rb50, rb60, rb70, rb80, rb90, rb100, rb110, rb120 global labMO, value1 winS = Toplevel(root) winS.title("Сортування") winS.geometry("500x420") labMO = Label (winS, text = u"Месяц:" ) varMO = IntVar() rb10 = Radiobutton(winS, text = u'Январь', variable=varMO, value=10) rb20 = Radiobutton(winS, text = u'Лютий', variable=varMO, value=20) rb30 = Radiobutton(winS, text = u'Березень', variable=varMO, value=30) rb40 = Radiobutton(winS, text = u'Квiтень', variable=varMO, value=40) rb50 = Radiobutton(winS, text = u'Травень', variable=varMO, value=50) rb60 = Radiobutton(winS, text = u'Червень', variable=varMO, value=60) rb70 = Radiobutton(winS, text = u'Липень', variable=varMO, value=70) rb80 = Radiobutton(winS, text = u'Серпень', variable=varMO, value=80) rb90 = Radiobutton(winS, text = u'Вересень', variable=varMO, value=90) rb100 = Radiobutton(winS, text = u'Жовтень', variable=varMO, value=100) rb110 = Radiobutton(winS, text = u'Листопад', variable=varMO, value=110) rb120 = Radiobutton(winS, text = u'Грудень', variable=varMO, value=120) def lb1_change(evt): global rb1, rb2, rb3, rb4, rb10, rb20, rb30, rb40, rb50, rb60, rb70, rb80, rb90, rb100, rb110, rb120 global value1 value1 = lb1.get(lb1.curselection()) if value1 == u'по месяцу': labMO.place(x = 150, y = 20) # rb10.place(x = 150, y = 50) # rb20.place(x = 150, y = 80) # rb30.place(x = 150, y = 110) # rb40.place(x = 150, y = 140) # rb50.place(x = 220, y = 50) # rb60.place(x = 220, y = 80) # rb70.place(x = 220, y = 110) # rb80.place(x = 220, y = 140) # rb90.place(x = 290, y = 50) # rb100.place(x = 290, y = 80) # rb110.place(x = 290, y = 110) # rb120.place(x = 290, y = 140) # def search_(): # ПОШУК global directory, files, value1 # u'Тут какая-то муть с кодировкой.' # u'интерпритатор не понимает укр. i ' # u'так что я заменил её везде на англ. i :/' # dictmonths[str(month1.get())] if labMO.winfo_viewable(): # if (varMO.get() == 10): # MO = str(rb10['text']) # elif (varMO.get() == 20): # MO = str(rb20['text']) # elif (varMO.get() == 30): # MO = str(rb30['text']) # elif (varMO.get() == 40): # MO = str(rb40['text']) # elif (varMO.get() == 50): # MO = str(rb50['text']) # elif (varMO.get() == 60): # MO = str(rb60['text']) # elif (varMO.get() == 70): # MO = str(rb70['text']) # elif (varMO.get() == 80): # MO = str(rb80['text']) # elif (varMO.get() == 90): # MO = str(rb90['text']) # elif (varMO.get() == 100): # MO = str(rb100['text']) # elif (varMO.get() == 110): # MO = str(rb110['text']) # elif (varMO.get() == 120): # MO = str(rb120['text']) # # poisk = MO # 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,i) 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/Test/"+t1.get(t1.curselection())) #t1.insert(END, i) #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'по объекту работ', 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) #~ scr = Scrollbar(winS) С=К=Р=О=Л #~ scr["command"] = t1.yview #~ t1["yscrollcommand"] = scr.set #~ t1.pack(side="left", pady=5) #~ scr.pack(side="right", pady=5, fill="y") 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) winS.mainloop() bSort = Button(root, text = 'Сортування', command = open_winS) bSort.place(x = 400, y = 400) #----------------------------------------------------------------------# #----------------------------------------------------------------------# label_5 = Label(root, text = u'Дата: ') label_5.place(x = 160, y = 50) #entry_3 = Entry(root,bd = 5, width = 10) #entry_3.place(x = 160, y = 70) ########### #----------------------------Д А Т А-----------------------------------# dictmonths = {'1':'Январь','2':'Лютий','3':'Березень', '4':'Квiтень','5':'Травень','6':'Червень', '7':'Липень','8':'Серпень','9':'Вересень', '10':'Жовтень','11':'Листопад','12':'Грудень'} def day_control(): """Фокус в day. Ограничение значение полей day в зависимости от установленного в month.""" year = int(year1.get()) if month1.get() == '2': if (year % 400 == 0) or ((year % 100 != 0) and (year % 4 == 0)): day1.config(from_=1,to=29) else: day1.config(from_=1,to=28) else: if month1.get() in ['4','6','9','11']: day1.config(from_=1,to=30) else: day1.config(from_=1,to=31) def month_control(): """Фокус в month. Автоматическое изменение полей day при изменении month.""" year = int(year1.get()) if day1.get()=='31' and (month1.get() in ['4','6','9','11']): day1.config(from_=1,to=30) elif month1.get() == '2' and (day1.get() in ['30','31','29']): if (year % 400 == 0) or ((year % 100 != 0) and (year % 4 == 0)): day1.config(from_=1,to=29) else: day1.config(from_=1,to=28) def year_control(): """Фокус в year. Ограничение значение полей day в зависимости от года, если установлен в month находится 2.""" year = int(year1.get()) if month1.get() == '2': if (year % 400 == 0) or ((year % 100 != 0) and (year % 4 == 0)): day1.config(from_=1,to=29) else: day1.config(from_=1,to=28) ################################################################ def radio_change(): if radio_var.get() == 0: l_days.grid_remove() days.grid_remove() # l_date2.grid(row=5,column=0) #year2.grid(row=5,column=1) #month2.grid(row=5,column=2) #day2.grid(row=5,column=3) elif radio_var.get() == 1: # l_date2.grid_remove() # year2.grid_remove() # month2.grid_remove() # day2.grid_remove() l_days.grid(row=5,column=0,padx=15,sticky=E) days.grid(row=5,column=1,columnspan=3,sticky=W) ############################################################### ################################################################## lf2 = LabelFrame() lf2.place(x = 140, y = 70) #l_date1 = Label(lf2,text='Дата 1:') year1_var = StringVar() year1 = Spinbox(lf2,from_=1,to=3000,width=4,textvariable=year1_var,command=year_control) month1_var = StringVar() month1 = Spinbox(lf2,from_=1,to=12,width=2,textvariable=month1_var,command=month_control) day1_var = StringVar() day1 = Spinbox(lf2,from_=1,to=31,width=2,textvariable=day1_var,command=day_control) #l_date1.grid(row=4,column=0,padx=15) day1.grid(row=4,column=1) month1.grid(row=4,column=2) year1.grid(row=4,column=3) #but = Button(lf2,text="Найти") #ent = Label(lf2,width=12,justify=CENTER,bg="yellow",relief=GROOVE) #but.grid(row=6,column=0,pady=5) #ent.grid(row=6,column=1,columnspan=3,sticky=W+E) ######################################################################## date = datetime.date.today() date = str(date) date = date.split('-') year1_var.set(date[0]) month1_var.set(date[1]) day1_var.set(date[2]) #----------------------------------------------------------------------# #----------------------------------------------------------------------# #------------------------------------------SAVE_AS_START------------------------------------------------------------------------ def save_as(): if askyesno("Save As?", "Зберегти введенне?"): #Объявление переменных data = ' Дата: ' + str(day1.get())+ "/" + dictmonths[str(month1.get())]+ "/" + str(year1.get()) ############## SAVE ####################### # year = int(year1.get()) ############### print ('\n', data,'\n', '-------------------------------------------------------------') list_1 = ['\n', data,'\n'] sa = fdialog.asksaveasfilename(filetypes = [('all files', '.*'), ('xls files', '.xls'),('doc files', '.doc')]) # собственно, само сохранение f = open(sa, 'a') for i in list_1: f.write(i) f.close() #----------------------------------------------------SAVE_AS_END-------------------------------------------------------------------------------------------- frame_1 = Frame(root, bg = 'red', bd = 2) button_0 = Button(frame_1, text = u'Зберегти', command = save_as) button_0.pack() frame_1.place(x = 400, y = 360 ) root.mainloop()