Home > python, wxPython > Python: Copy progress bar

Python: Copy progress bar

    import os  
    import wx  
      
      
    class ProgressBar(wx.ProgressDialog):  
        '''''Progress Bar class'''  
        def __init__(self, *args, **kwargs):  
            super(ProgressBar, self).__init__(*args, **kwargs)  
      
      
    def progress_copy(src, dest, buffer_size=1024):  
        '''''copy source file to destination file'''  
        steps = os.stat(src).st_size / buffer_size + 1  
        source = open(src, 'rb')  
        target = open(dest, 'wb')  
        pbar = ProgressBar(title="wait...", message="Time remaining",  
                           maximum=steps, parent=None,  
                           style=wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME |  
                           wx.PD_REMAINING_TIME)  
        count = 0  
        while count <= (steps):  
            chunk = source.read(buffer_size)  
            if chunk:  
                count += 1  
                target.write(chunk)  
                pbar.Update(count)  
            else:  
                break  
      
        source.close()  
        target.close()  
        pbar.Destroy()  
        print "...copied"  
      
      
    def main():  
        '''''app starter'''  
        app = wx.PySimpleApp()  
        progress_copy(src=SOURCE_FILE, dest=DEST_FILE)  
        app.MainLoop()  
      
    if __name__ == '__main__':  
        main()
Categorie:python, wxPython
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: