[Python] barra di caricamento

Roberto De Ioris roberto a unbit.it
Gio 13 Ott 2011 15:31:26 CEST


Il giorno 13/ott/2011, alle ore 15:05, Freeze NorthPole ha scritto:

> Ciao Fabrizio,
> so che nella ML scrivono persone di un certo livello, sto studiando Python da un libro di Marco Beri, e la mia non era una mail di polemica, ma per dare il mio punto di vista visto che si faceva un mega discorso su una mia mail.
> è vero che la mia mail è stata poco dettagliata e lo ammetto senza problemi dato che l'ho scritta quando ormai stavo dormendo in piedi, ma personalmente avrei apprezzato di più una mail del tipo: "non riusciamo ad aiutarti perchè sei stato poco preciso, dacci maggioni info...."
> 
> e già che siamo in tema
> |--dettagli --|
> uso pyhton 2.7
> ho relaizzato uno script che uso sia sotto windows che sotto linux
> lo script si usa solo librerie semplic come .os , ftplibe e string
> lo script legge il contnuto di una cartella
> prende in considerazione solo i file
> e li "uploada " su un server preimpostato  con il comando:
>      ftp.storbinary('STOR %s'%(str(elemento_lista),),open(elemento_lista,'rb'))
> 
> usandolo mi sono accorto di quanto sia brutto non sapere a che punto del caricamento sono e da qui la domanda mal posta:
> come realizzo una barra di caricamento? mi va bene anche qualcosa analoga a quanto mostrato dal comando di Linux wget (della forma ==>  | personalmente stavo pensando di fare un controllo ogni secondo del file sul server e di fare un confronto con il file originale presente nel PC

E' l'unico modo (con l'approccio che stai usando)


> però mi sono subito fermato perchè il controllo deve essere effettuato mentre è in corso l'upload  e ilprogramma passa all'istruzione successiva solo quando ha finito
>      ftp.storbinary('STOR %s'%(str(elemento_lista),),open(elemento_lista,'rb'))
> 
> ci vorrebbe qualcosa come un processo parallelo…

esatto, apri una seconda connessione (anche in un thread, non serve fare fork) e hai risolto

Tieni presente che a basso livello il comando STOR non e' bloccante (ftp apre una connessione apposta per il trasferimento dati), quindi in realta' questo approccio e'
"obbligato" dall'astrazione della ftplib



--
Roberto De Ioris
http://unbit.it
JID: roberto a jabber.unbit.it



Maggiori informazioni sulla lista Python