En un script de Python copio un árbol de directorios y me gustaría imprimir un texto como este ...
print("Copying... ", end="")
shutil.copytree(src, dest)
print("DONE")
Sin embargo, el texto Copying...
no se imprime hasta que la secuencia de comandos haya finalizado.
2
Robert Strauch
10 dic. 2015 a las 12:00
3 respuestas
La mejor respuesta
Necesita vaciar STDOUT, pero no es necesario incluir sys.stdout
en la imagen. print
puede hacer eso por usted:
print("Copying... ", end="", flush=True)
shutil.copytree(src, dest)
print("DONE")
3
Jashandeep Sohi
10 dic. 2015 a las 09:42
Las secuencias de salida no escriben en el terminal hasta el final de la línea, a menos que vacíe manualmente el búfer.
print("Copying... ", end="")
sys.stdout.flush()
shutil.copytree(src, dest)
print("DONE")
Este es exactamente el mismo comportamiento que se encuentra en otros lenguajes, como C y C ++, y por la misma razón.
6
Dietrich Epp
10 dic. 2015 a las 09:03
Inicie el intérprete de Python con la opción -u
para utilizar la salida sin búfer. Ahora sus mensajes impresos aparecerán inmediatamente
2
mavroprovato
10 dic. 2015 a las 10:43