+ Cevap Yaz
3 sonuçtan 1 ile 3 arası gösteriliyor

Konu: Dosya indirme uygulaması

  1. #1
    osx
    osx hatta değil
    Üye
    Üyelik Tarihi
    02/2007
    Yer
    Adana
    Mesaj
    61

    Dosya indirme uygulaması

    Selamlar...
    Arkadaşlar python'da urllib ve Tkinter modüllerini kullanarak basit bir uygulama yazdım, kodlarda istediğiniz gibi değişiklik yapabilirsiniz ama iş ticarete dönüşmesin ...Yaptığınız geliştirmeleri foruma eklerseniz herkes faydalanabilir ve herkesin yararına olur!.. Uygulama basitte olsa bazen işe yarayabiliyor ...

    Kod:
    # -*- coding: cp1254 -*-
    # +-------------------+
    # | mehmet3@gmail.com |
    # +-------------------+
    from Tkinter import*
    import urllib
    from tkFileDialog import *
    yazilanuzanti= [("Tum Dosyalar","*"),                   #Uzantılar belirleniyor...
                    ("Executable","*.exe"),
                    ("ZIP","*.zip")]
    def indir():                                            #indir fonksiyonu
        global bilgi                                        #"bilgi" nesnesi global olarak ayarlanıyor (değişiklik yapmak için)
        try:                                                #eğer bağlantı doğru sağlanırsa alt blok çalıştırılacak.
            bilgi.config(text=u"Bağlanıyor...",fg="#000000")#mesaj yazdırılıyor.
            u=urllib.urlopen(giris.get())                   #bağlantı.
            bilgi.config(text=u"Bağlandı...")               #eğer bağlantı sağlanırsa mesaj yazdırılıyor.
            dizin=asksaveasfilename(defaultextension = "" ,filetypes=yazilanuzanti)#kaydedilecek dizin belirleniyor.
            if dizin:                                       #eğer dizin işlemine devam edilirse alt blok çalışacak...
                try:                                        #eğer sorun çıkmazsa...
                    bilgi.config(text=u"İndiriliyor...")    #mesaj yazdırılıyor.
                    d=open(dizin,"wb")                      #exe, zip vb... dosyalar için yazma şekli "wb" olmalıdır.
                    a=u.read()                              #indirilen dosya okunuyor - 
                    d.write(a)                              #ve belirtilen dizine, belirtilen uzantı ile yazılıyor...
                    d.close()                               #yazıldıktan sonra kapatılıyor...
                    bilgi.config(text=u"İşlem tamamlandı...")#mesaj...
                except:                                     #eğer yazma işleminde hata varsa -
                    print "hata"                            #mesaj veriliyor...
                    bilgi.config(text=u"Hata...",fg="#FF0000")
            else:                                           #eğer dosya (dizin işlemi) menusu kapatılırsa mesaj yazdırılıyor.(bkz. yukarı "if dizin" :)
                bilgi.config(text=u"İşlem iptal edildi...") 
        except:                                             #bağlantı sağlanamazsa hata mesajı verilecek...
            bilgi.config(text=u"Bağlantı hatası...",fg="#FF0000")
    #------------yazı-k.k.y.s.t---------  
    kopyala=lambda:bilgi.event_generate('<Control-c>')      #1 satırlık işlemler için "lambda" uygundur :)
    kess=lambda:bilgi.event_generate('<Control-x>')
    yapistir=lambda:bilgi.event_generate('<Control-v>')
    sil=lambda:bilgi.event_generate('<Delete>')
    tumunusec=lambda:bilgi.event_generate('<Control-/>')
    def sag_tus(event):
        try:
            popup.tk_popup(event.x_root, event.y_root)
        finally:
            popup.grab_release()
    #-------------------------------------
    pencere=Tk()
    pencere.geometry("250x110")
    pencere.title(u"İndir...")
    pencere.resizable(width=0,height=0)
    #-------------------------------------
    popup = Menu(pencere, tearoff=0)                        #kes,kopyala... menusu, tk'da yok :(
    popup.add_command(label="Kes",command=kess)
    popup.add_command(label="Kopyala",command=kopyala)
    popup.add_command(label=u"Yapıştır",command=yapistir)
    popup.add_command(label="Sil",command=sil)
    popup.add_separator()
    popup.add_command(label=u"Tümünü Seç",command=tumunusec)
    #-------------------------------------
    katman=LabelFrame(text="Link")                          
    giris=Entry(katman)
    giris.pack(fill=BOTH, expand=YES)
    giris.bind("<Button-3>", sag_tus)
    katman.pack(fill=BOTH, expand=YES,pady=5)
    
    katman2=Frame()
    indird=Button(katman2,text=u"İndir",relief = "ridge",borderwidth=1,command=indir)
    indird.pack(fill=BOTH, expand=YES,side=LEFT)
    kapat=Button(katman2,text=u"Kapat",relief = "ridge",borderwidth=1,command=pencere.quit)
    kapat.pack(fill=BOTH, expand=YES,side=RIGHT)
    katman2.pack(fill=BOTH)
    
    bilgikatman=LabelFrame(text="Durum")
    bilgi=Label(bilgikatman,text=u"İşlem yok.",font=('arial', '10'),fg="#000000")
    bilgi.pack(side=LEFT)
    bilgikatman.pack(fill=BOTH, expand=YES)
    
    mainloop()
    
    uygulamanın eksikleri var...

  2. #2
    Yns
    Yns hatta değil
    İptal Durumu Yns Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    10/2004
    Mesaj
    2,808

    Keşke tkinter'da progress bar widget gibi bir şey olsaydı da geliştirebilseydik

    Uygulama için teşekkürler.

  3. #3
    Üye
    Üyelik Tarihi
    02/2007
    Mesaj
    6

    Linux kullanıcıları Boa constructor ile grafikleri daha kolay hazırlayabilir. Pythonwork isminde pythonware.com dan indirebileceğiniz bir program daha var. Dos ta da kullanılabilir. Ama artık geliştirilmediğinden biraz eski kalabilir.

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Benzer Konular

  1. exe indirme sorunu
    By yarkanavci in forum Internet
    Cevap: 12
    En Son Mesaj: 28/01/2010, 02:48
  2. Dosya indirme!
    By StarturE in forum PHP
    Cevap: 9
    En Son Mesaj: 17/11/2006, 21:16
  3. sayfa indirme
    By smasherz in forum PHP
    Cevap: 17
    En Son Mesaj: 04/03/2005, 18:29
  4. MP3 indirme üzerinne
    By selami_32 in forum Hayata Dair
    Cevap: 0
    En Son Mesaj: 02/08/2004, 08:33
  5. dosya indirme
    By _insan_ in forum Windows
    Cevap: 6
    En Son Mesaj: 12/09/2003, 22:14

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz