Forum >> Principianti >> Come usare correttamente la libreria PyPrind?

Pagina: 1

vorrei che quando avvio il mio programma nel terminale , compaia anche una barra di caricamento, giusto per dare un'idea sul suo stato di avanzamento. su internet ho visto che per fare ciò potrei fare uso di una libreria chiamata PyPrind:

https://github.com/rasbt/pyprind/blob/master/README.md


il problema però è che non riesco a capire come integrarlo nel mio programma. sul sito ufficiale scrivono questo codice:

for i in pyprind.prog_percent(range(n)):
	time.sleep(timesleep) # your computation here

come mai per avviare questa barra di caricamento devo avere un range? e a che cosa si riferisce? e "timesleep" che cosa sarebbe? l'intervallo di tempo in cui la libreria verifica l'avanzamento del programma? non capisco.

talaltro il programma che ho scritto è anche un po lungo ed è pieno di cicli "for". quindi non saprei nemmeno dove applicare questa libreria. sotto questo ciclo "for" che vedo in esempio dovrei metterci tutto il mio programma? per adesso sono quasi 400 linee di codice..

in alternativa quale altra libreria mi consigliate di usare? specificando anche come usarla ovviamente :)


--- Ultima modifica di TurboC in data 2019-06-09 20:39:45 ---
Beh mi sembra molto chiaro... il concetto è che per usare questa libreria (come tutte le altre analoghe) il pre-requisito fondamentale è che il tuo task bloccante lungo, durante il quale vuoi far vedere la progress bar, sia frazionabile in un numero "n" noto di unità di calcolo più piccole. A questo punto la libreria si prende cura di aumentare la barra tra una unità e la successiva. Ovviamente negli esempi facili che si fanno sempre nella documentazione, l'unità di task bloccante è sempre un "time.sleep" per un po' di tempo... devi immaginare di metterci al posto la tua unità di calcolo.


L'idioma "pyprind.progr_percent(range(n))" è chiaramente uno shortcut che vale come il primo esempio che trovi nella documentazione, dove istanzia una classe e cicla espliticamente su "range(n)", dove "range(n)" sarebbe appunto la lista delle tue unità di task bloccanti.


Ovviamente se il tuo task bloccante non è agevolmente divisibile in unità più piccole, allora non c'è modo di usare questa libreria (ma ripeto, un po' tutte queste soluzioni si basano sullo stesso concetto).



Pagina: 1



Esegui il login per scrivere una risposta.