Уведомления

Группа в Telegram: @pythonsu

#1 Март 26, 2015 08:37:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

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()

Это неточное воспроизведение urlretrieve(), сама urlretrieve() считается устаревшей. Тут в хук подаётся не три, а два аргумента - текущий размер и общий размер.

Пример:
>>> 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)

Офлайн

#2 Март 27, 2015 10:20:19

Zeclone
От: .uz
Зарегистрирован: 2015-02-27
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

py.user.next
dlper.py

очень очень большое спасибо. работает. но давайте подходим к tkinter.
все еще прочитаю Доусона про tkinter. но выдаются ошибки.(кто не прочитал: глава№10
“Разработка графических интерфейсов. Программа <<Сумасшедший сказочник>> ”)

Хочу такую окно на мою программу.(если кто не понял мою цель)

Спасибо за ранее



:D Zeclone не русский поэтому просит прошения за ошыбки :D

Прикреплённый файлы:
attachment ddd.png (141,3 KБ)

Офлайн

#3 Март 27, 2015 10:22:27

Zeclone
От: .uz
Зарегистрирован: 2015-02-27
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

FishHook
readme

Я не очень понял.но постараюсь понимать.а насчет dlper в гугле только эта инфо.
Можете дать по больше инфо насчет моего первого программы? был б очень очент благодарен….



:D Zeclone не русский поэтому просит прошения за ошыбки :D

Офлайн

#4 Март 27, 2015 11:11:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

Zeclone
а насчет dlper в гугле только эта инфо
dlper - это модуль dlper.py

Zeclone
но давайте подходим к tkinter
На tkinter там нужно сделать поля ввода для ссылки и имени файла, а кнопки должны быть Ok и Cancel.

Zeclone
все еще прочитаю Доусона про tkinter. но выдаются ошибки.(кто не прочитал: глава№10
Код бы закинул сюда, если есть.



Отредактировано py.user.next (Март 27, 2015 11:15:42)

Офлайн

#5 Март 30, 2015 08:44:47

Zeclone
От: .uz
Зарегистрирован: 2015-02-27
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

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 ="Вот она я!")



:D Zeclone не русский поэтому просит прошения за ошыбки :D

Отредактировано Zeclone (Март 30, 2015 08:46:01)

Офлайн

#6 Март 30, 2015 11:31:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

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)

Офлайн

#7 Март 31, 2015 12:18:39

Zeclone
От: .uz
Зарегистрирован: 2015-02-27
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

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()

Хочу когда нажать кнопку НАЧАТЬ автоматический сработало этот скрипт.
только когда жмёш программа закрывается

Я новичок поэтому не использовал вашего заготовка.

спасибо





:D Zeclone не русский поэтому просит прошения за ошыбки :D

Отредактировано Zeclone (Март 31, 2015 12:31:05)

Офлайн

#8 Март 31, 2015 13:22:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

Zeclone
Друзья, я наконец то сделал первую программу и сегодня презентовал нашему уважаемую Админу(на работе).
Но…
Но он хочет визуальное окно похоже на нижеследующий:

____________ _________________
|старт(кнопка)| | процент загрузки |
—————— ————————

____________ ________________
|пауза(кнопка)| | отмена (кнопка) |
——————- ————————

Zeclone
Я новичок поэтому не использовал вашего заготовка.
Ну, это минимум для того, что указано. Ты, видать, забыл уже, что надо было :)



Офлайн

#9 Апрель 2, 2015 12:42:03

Zeclone
От: .uz
Зарегистрирован: 2015-02-27
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

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()

тут script.exe есть прога который ты написал, а я изменял на *.exe*

пжлйста помогите с этим




:D Zeclone не русский поэтому просит прошения за ошыбки :D

Отредактировано Zeclone (Апрель 2, 2015 12:45:00)

Офлайн

#10 Апрель 2, 2015 12:57:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка при скачивание файла или уникод

self[os.system('D:\\build\base\script.exe')]=parent.destroy 
А это что???



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version