Sto scrivendo una barra di avanzamento come suggerito da How to animate the command line?. Io uso Pycharm ed eseguo questo file in Run Tool Window.Python3: print (somestring, end = ' r', flush = True) non mostra nulla
import time
def show_Remaining_Time(time_delta):
print('Time Remaining: %d' % time_delta, end='\r', flush=True)
if __name__ == '__main__':
count = 0
while True:
show_Remaining_Time(count)
count += 1
time.sleep(1)
Tuttavia, il codice non visualizza nulla se si esegue questo file .py. Che cosa sto facendo di sbagliato?
ho cercato di Jogger suggeriscono ma non è ancora lavorando se uso print
funzione.
Tuttavia, il seguente script funziona come previsto.
import time
import sys
def show_Remaining_Time(time_delta):
sys.stdout.write('\rtime: %d' % time_delta) # Doesn't work if I use 'time: %d\r'
sys.stdout.flush()
if __name__ == '__main__':
count = 0
while True:
show_Remaining_Time(count)
count += 1
time.sleep(1)
Ho 2 domande: ora
Perché opere stdout ma print() no.
Perché il How to animate the command line? suggerisce di aggiungere
\r
alla fine mentre devo scriverlo all'inizio nel mio caso?
Funziona bene per me nell'interprete interattivo. Stai correndo in una strana shell per caso, ad esempio, la shell IDLE? – ShadowRanger
@ShadowRanger Lo sto usando con la finestra degli strumenti di esecuzione di Pycharm. Se non passo 'end = '\ r'' stampa normalmente. Ma voglio continuare ad aggiornare la stessa linea. – spacegoing
Sì, la finestra di esecuzione di PyCharm non è un normale terminale. Non gestisce i ritorni a capo come vorresti. Esegui in un normale prompt dei comandi. – ShadowRanger