so che per aggiornare qualcosa di simile a una barra di avanzamento sulla linea di comando, si usa '\ r'. C'è un modo per aggiornare più linee?barre di avanzamento multilinea
risposta
Il modo migliore è quello di utilizzare un po 'di libreria esistente come ncurses. Tuttavia, è possibile provare una soluzione temporanea cancellando la console con la chiamata di sistema: system("cls");
.
È possibile utilizzare VT100 codes per riposizionare il cursore su una linea più alta, quindi sovrascriverlo con lo stato aggiornato.
La libreria Curses offre un controllo potente per le interfacce utente della console.
Se si sta utilizzando Python, provare a utilizzare blessings. È un involucro davvero intuitivo attorno alle maledizioni.
semplice esempio:
from blessings import Terminal
term = Terminal()
with term.location(0, 10):
print("Text on line 10")
with term.location(0, 11):
print("Text on line 11")
Se si sta effettivamente cercando di attuare una barra di avanzamento, è consigliabile utilizzare progressbar. Ti farà risparmiare un sacco di \r
cruft.
In realtà è possibile connettere le benedizioni e la barra di avanzamento insieme. Provare a eseguire questo:
sistemaimport time
from blessings import Terminal
from progressbar import ProgressBar
term = Terminal()
class Writer(object):
"""Create an object with a write method that writes to a
specific place on the screen, defined at instantiation.
This is the glue between blessings and progressbar.
"""
def __init__(self, location):
"""
Input: location - tuple of ints (x, y), the position
of the bar in the terminal
"""
self.location = location
def write(self, string):
with term.location(*self.location):
print(string)
writer1 = Writer((0, 10))
writer2 = Writer((0, 20))
pbar1 = ProgressBar(fd=writer1)
pbar2 = ProgressBar(fd=writer2)
pbar1.start()
pbar2.start()
for i in range(100):
pbar1.update(i)
pbar2.update(i)
time.sleep(0.02)
pbar1.finish()
pbar2.finish()
- 1. Barre di avanzamento Powershell multiple (nidificate?)
- 2. C# Backgroundworker segnala lo stato di avanzamento di 2 barre di avanzamento?
- 3. Disattiva le transizioni CSS3 di Bootstrap sulle barre di avanzamento
- 4. Come devono essere gestite più barre di avanzamento in javascript
- 5. Barra di avanzamento Thinner Bootstrap?
- 6. Solo 1 di 2 barre di avanzamento viene aggiornato in BackgroundWorker
- 7. Interfaccia della riga di comando Java: con più barre di avanzamento su linee diverse utilizzando '\ r'
- 8. Come aggiornare l'uscita multilinea dinamicamente
- 9. Come ottenere barre di avanzamento stile blocchi in Aero/.NET 4
- 10. Comando di arricciatura multilinea
- 11. Barra di avanzamento segmentata in Bootstrap 3
- 12. CATextLayer multilinea
- 13. Barra di avanzamento circolare
- 14. Barra di navigazione multilinea Titolo
- 15. errore di visualizzazione multilinea NSTokenField
- 16. Cancellazione di una multilinea EditText
- 17. Barra di avanzamento caricamento file utilizzando RestTemplate.postForLocation
- 18. Ruby: sintassi condizionale multilinea: come si fa?
- 19. barre di stato nativi
- 20. La casella di testo multilinea ancorata è coperta da StatusStrip
- 21. barra di avanzamento in WPF
- 22. Output di avanzamento tarfile Python?
- 23. HTML5 Audio - Barra di avanzamento
- 24. Django-Sedano barra di avanzamento
- 25. dialogo di avanzamento con asynctask
- 26. Lato server - Barra di avanzamento
- 27. Calcolo della percentuale di avanzamento
- 28. Barra di avanzamento Android DialogFragment
- 29. Mostra avanzamento di esecuzione javascript
- 30. Avanzamento dello streaming di AVPlayer
è ("CLS") solo per Windows? – yodie
Su Linux c'è "clear" – doc
E OS X? – yodie