2012-06-13 41 views
12

Necesito imprimir más de una línea en un bucle (Python 3.x). Mirándolo ya en SO, puse esta línea en mi código:python: imprimir utilizando el retorno de carro y la coma no funciona

print('{0} imported\r'.format(tot),) 

Sin embargo, sigue imprimiendo varias líneas cuando se pasa. También he intentado

sys.stdout.write('{0} imported\r'.format(tot)) 

pero esto no se imprime nada a la consola ...

Alguien sabe lo que está pasando con esto?

+0

'sys.stdout.write()' que funciona para mí .. usted tiene 'sys' importación. ¿Estás tratando de superponer la salida en la misma línea? – Levon

+0

Si está tratando de obtener el mismo efecto que 'print text,' from python 2.x, necesita usar el argumento 'end', como en' print (text, end = '') '. La coma al final de los argumentos de la función no tiene ningún efecto. – James

+0

No estoy seguro de "de 2.x". La línea 'print (text, end = '')' me da un error de sintaxis en '' '. – rossmcm

Respuesta

17

En el primer caso, algunos sistemas tratarán \r como una nueva línea. En el segundo caso, no hizo flush la línea. Prueba esto:

sys.stdout.write('{0} imported\r'.format(tot)) 
sys.stdout.flush() 

Lavado de la línea no es necesaria en todos los sistemas, ya sea, como Levon me recuerda - pero es generalmente una buena idea cuando se utiliza \r esta manera.

+0

@ kevlar1818 Como mencioné en el comentario, eso funcionó para mí (incluso sin descargar el búfer de salida) ... extraño – Levon

+0

El 'sys.stdout.flush()' era lo que necesitaba. ¡Gracias! – kevlar1818

9

Si desea sobrescribir la última línea, necesita agregar \ r (retorno de caracteres) y end = "" para que no pase a la siguiente línea.

values = range(0, 100) 
for i in values: 
    print ("\rComplete: ", i, "%", end="") 
print ("\rComplete: 100%") 
3

Yo prefiero usar la solución de Jan, pero de esta manera:

values = range(0, 101) 
for i in values: 
    print ("Complete: ", i, "%", end="\r") 
print ("\n\r", end="") 
+3

Su última línea es exagerada. Debería ser simplemente 'print()'. –

Cuestiones relacionadas