Форум сайта python.su
857
dlper.py
#!/usr/bin/env python3 import urllib.request def loadfile(url, fname, bsize=1024, ihook=None): data = urllib.request.urlopen(url) out = open(fname, 'wb') with data, out: block = True cur_size = 0 tot_size = int(data.headers['Content-Length']) while block: block = data.read(bsize) out.write(block) if ihook is not None: blen = len(block) if blen > 0: cur_size += blen ihook(cur_size, tot_size) def print_percent(cur, tot): print('\r{:d}%'.format(int(100 * cur / tot)), end='') if cur == tot: print() def main(): url = 'http://cdn.download.comodo.com' \ '/av/updates51/sigs/bases/bases.cav' ofname = 'bases.cav' loadfile(url, ofname, ihook=print_percent) if __name__ == '__main__': main()
>>> import dlper >>> dlper.loadfile('http://www.yandex.ru', 'yandex.html', ihook=lambda c, t: print('Current:', c, 'Total:', t)) Current: 1024 Total: 62280 Current: 2048 Total: 62280 Current: 3072 Total: 62280 Current: 4096 Total: 62280 Current: 5120 Total: 62280 Current: 6144 Total: 62280 Current: 7168 Total: 62280 Current: 8192 Total: 62280 Current: 9216 Total: 62280 Current: 10240 Total: 62280 Current: 11264 Total: 62280 Current: 12288 Total: 62280 Current: 13312 Total: 62280 Current: 14336 Total: 62280 Current: 15360 Total: 62280 Current: 16384 Total: 62280 Current: 17408 Total: 62280 Current: 18432 Total: 62280 Current: 19456 Total: 62280 Current: 20480 Total: 62280 Current: 21504 Total: 62280 Current: 22528 Total: 62280 Current: 23552 Total: 62280 Current: 24576 Total: 62280 Current: 25600 Total: 62280 Current: 26624 Total: 62280 Current: 27648 Total: 62280 Current: 28672 Total: 62280 Current: 29696 Total: 62280 Current: 30720 Total: 62280 Current: 31744 Total: 62280 Current: 32768 Total: 62280 Current: 33792 Total: 62280 Current: 34816 Total: 62280 Current: 35840 Total: 62280 Current: 36864 Total: 62280 Current: 37888 Total: 62280 Current: 38912 Total: 62280 Current: 39936 Total: 62280 Current: 40960 Total: 62280 Current: 41984 Total: 62280 Current: 43008 Total: 62280 Current: 44032 Total: 62280 Current: 45056 Total: 62280 Current: 46080 Total: 62280 Current: 47104 Total: 62280 Current: 48128 Total: 62280 Current: 49152 Total: 62280 Current: 50176 Total: 62280 Current: 51200 Total: 62280 Current: 52224 Total: 62280 Current: 53248 Total: 62280 Current: 54272 Total: 62280 Current: 55296 Total: 62280 Current: 56320 Total: 62280 Current: 57344 Total: 62280 Current: 58368 Total: 62280 Current: 59392 Total: 62280 Current: 60416 Total: 62280 Current: 61440 Total: 62280 Current: 62280 Total: 62280 >>>
Отредактировано py.user.next (Март 26, 2015 08:43:05)
Офлайн
0
py.user.next
dlper.py
Прикреплённый файлы:
ddd.png (141,3 KБ)
Офлайн
0
FishHook
readme
Офлайн
857
Zeclonedlper - это модуль dlper.py
а насчет dlper в гугле только эта инфо
ZecloneНа tkinter там нужно сделать поля ввода для ссылки и имени файла, а кнопки должны быть Ok и Cancel.
но давайте подходим к tkinter
ZecloneКод бы закинул сюда, если есть.
все еще прочитаю Доусона про tkinter. но выдаются ошибки.(кто не прочитал: глава№10
Отредактировано py.user.next (Март 27, 2015 11:15:42)
Офлайн
0
py.user.nextвот скрипт:
from tkinter import * # создание базового окна root = Tk() root.title("Этo я,метка") root.geometry("200х50") арр = Frame(root) app.grid() lbl = Label(app.text ="Вот она я!") lbl=Label(app.tax="ВОТ оня") root.mainloop()
keyword can not be an expression
lbl = Label(app.text ="Вот она я!")
Отредактировано Zeclone (Март 30, 2015 08:46:01)
Офлайн
857
ZecloneВообще-то класс нужно делать, в котором все поля, кнопки и метка. К полям привязываются переменные типа StringVar().
вот скрипт:
#!/usr/bin/env python3 import tkinter as tk from tkinter.constants import * class App(tk.Frame): def __init__(self, master=None): tk.Frame.__init__(self, master) self.pack(fill=BOTH) self.create_widgets() def create_widgets(self): self.frame_top = tk.Frame(self) self.frame_top.pack(fill=BOTH) self.frame_bottom = tk.Frame(self) self.frame_bottom.pack(fill=BOTH) self.frame_top.label_enter = tk.Label(self.frame_top, text='Enter:') self.frame_top.label_enter.pack(side=LEFT) self.frame_top.entry_var = tk.StringVar() self.frame_top.entry_var.set('???') self.frame_top.entry = tk.Entry(self.frame_top, textvariable=self.frame_top.entry_var) self.frame_top.entry.pack(side=LEFT) self.frame_top.button_ok = tk.Button(self.frame_top, text='Ok', command=self.press_button_ok) self.frame_top.button_ok.pack(side=LEFT) self.frame_top.button_quit = tk.Button(self.frame_top, text='Quit', command=self.master.destroy) self.frame_top.button_quit.pack(side=LEFT) self.frame_bottom.label_result_info = tk.Label(self.frame_bottom, text='Result:') self.frame_bottom.label_result_info.pack(side=LEFT) self.frame_bottom.label_result_var = tk.StringVar() self.frame_bottom.label_result_var.set('***') self.frame_bottom.label_result = tk.Label(self.frame_bottom, textvariable=self.frame_bottom.label_result_var) self.frame_bottom.label_result.pack(side=LEFT) def press_button_ok(self): entry_string = self.frame_top.entry_var.get() print(repr(entry_string)) self.frame_bottom.label_result_var.set(entry_string) def main(): root = App() root.master.title('Window') root.master.geometry('300x70+500+500') root.mainloop() if __name__ == '__main__': main()
Отредактировано py.user.next (Март 30, 2015 11:32:41)
Офлайн
0
py.user.next
from tkinter import * class quitButton(Button): def __init__(self, parent): Button.__init__(self, parent) self['text'] = 'НАЧАТЬ' self['command'] = parent.destroy self.pack(side=BOTTOM) root = Tk() quitButton(root) mainloop()

Отредактировано Zeclone (Март 31, 2015 12:31:05)
Офлайн
857
Zeclone
Друзья, я наконец то сделал первую программу и сегодня презентовал нашему уважаемую Админу(на работе).
Но…
Но он хочет визуальное окно похоже на нижеследующий:
____________ _________________
|старт(кнопка)| | процент загрузки |
—————— ————————
____________ ________________
|пауза(кнопка)| | отмена (кнопка) |
——————- ————————
ZecloneНу, это минимум для того, что указано. Ты, видать, забыл уже, что надо было :)
Я новичок поэтому не использовал вашего заготовка.
Офлайн
0
py.user.next
спасибо за помощь. но так не получилось у меня. я написал такой дуратский скрипт. даже Айдл не хочет работать 
from tkinter import * import os os.getcwd() class quitButton(Button): def __init__(self, parent): Button.__init__(self, parent) self['text'] = 'НАЧАТЬ' self[os.system('D:\\build\base\script.exe')]=parent.destroy self.pack(side=BOTTOM) root = Tk() openfileButton(root) mainloop()

Отредактировано Zeclone (Апрель 2, 2015 12:45:00)
Офлайн
568
self[os.system('D:\\build\base\script.exe')]=parent.destroy
Офлайн