usar instalar idle español ejecutar desde descargar consola compilar como archivo python-3.x cmd windows-7 python-idle tqdm

python-3.x - instalar - idle python



¿Cuál es la diferencia entre cmd y inactivo cuando se usa tqdm? (1)

Limitándonos a los caracteres ascii, el resultado del segundo código del programa es el mismo en ambos casos: una secuencia de bytes ascii que representan ascii chars. La definición de idioma no especifica ni puede especificar qué hará un dispositivo de salida o un programa de visualización con los bytes, en particular con los caracteres de control como ''/ r''.

La consola de Windows Command Prompt al menos a veces interpreta ''/ r'' como ''devolver el cursor al comienzo de la línea actual sin borrar nada''. En una consola Win10:

>>> import sys; out=sys.stdout >>> out.write(''abc/rdef'') def7

Sin embargo, cuando ejecuto su segundo código, con la importación de tiempo faltante, no veo el comportamiento de sobrescritura, pero veo el mismo resultado de línea continua que con IDLE.

C:/Users/Terry>python f:/python/mypy/tem.py [------------------------------------------------------------] 0.0% ...range 100[#-----------------------------------------------------------] ...

Por otro lado, si file.write("[%s]/r"% bar) la escritura a file.write("[%s]/r"% bar) , entonces veo una salida sobreescrita una y otra vez.

El widget de texto tk utilizado por IDLE solo interpreta / t y / n, pero no otros caracteres de control. Para algunos de nosotros, esto parece apropiado para un entorno de desarrollo, donde borrar caracteres es menos apropiado que en un entorno de producción.

Recientemente quiero agregar una barra de progreso simple a mi script, uso tqdm para eso, pero lo que me tqdm es que la salida es diferente cuando estoy en el IDLE o en el cmd

por ejemplo esto

from tqdm import tqdm import time def test(): for i in tqdm( range(100) ): time.sleep(0.1)

dar el resultado esperado en el cmd

30%|███ | 30/100 [00:03<00:07, 9.14it/s]

pero en el IDLE el resultado es así

0%| | 0/100 [00:00<?, ?it/s] 1%|1 | 1/100 [00:00<00:10, 9.14it/s] 2%|2 | 2/100 [00:00<00:11, 8.77it/s] 3%|3 | 3/100 [00:00<00:11, 8.52it/s] 4%|4 | 4/100 [00:00<00:11, 8.36it/s] 5%|5 | 5/100 [00:00<00:11, 8.25it/s] 6%|6 | 6/100 [00:00<00:11, 8.17it/s] 7%|7 | 7/100 [00:00<00:11, 8.12it/s] 8%|8 | 8/100 [00:00<00:11, 8.08it/s] 9%|9 | 9/100 [00:01<00:11, 8.06it/s] 10%|# | 10/100 [00:01<00:11, 8.04it/s] 11%|#1 | 11/100 [00:01<00:11, 8.03it/s] 12%|#2 | 12/100 [00:01<00:10, 8.02it/s] 13%|#3 | 13/100 [00:01<00:10, 8.01it/s] 14%|#4 | 14/100 [00:01<00:10, 8.01it/s] 15%|#5 | 15/100 [00:01<00:10, 8.01it/s] 16%|#6 | 16/100 [00:01<00:10, 8.00it/s] 17%|#7 | 17/100 [00:02<00:10, 8.00it/s] 18%|#8 | 18/100 [00:02<00:10, 8.00it/s] 19%|#9 | 19/100 [00:02<00:10, 8.00it/s] 20%|## | 20/100 [00:02<00:09, 8.00it/s] 21%|##1 | 21/100 [00:02<00:09, 8.00it/s] 22%|##2 | 22/100 [00:02<00:09, 8.00it/s] 23%|##3 | 23/100 [00:02<00:09, 8.00it/s] 24%|##4 | 24/100 [00:02<00:09, 8.00it/s] 25%|##5 | 25/100 [00:03<00:09, 8.00it/s] 26%|##6 | 26/100 [00:03<00:09, 8.00it/s] 27%|##7 | 27/100 [00:03<00:09, 8.09it/s] 28%|##8 | 28/100 [00:03<00:09, 7.77it/s] 29%|##9 | 29/100 [00:03<00:09, 7.84it/s] 30%|### | 30/100 [00:03<00:08, 7.89it/s] 31%|###1 | 31/100 [00:03<00:08, 7.92it/s] 32%|###2 | 32/100 [00:03<00:08, 7.94it/s] 33%|###3 | 33/100 [00:04<00:08, 7.96it/s] 34%|###4 | 34/100 [00:04<00:08, 7.97it/s] 35%|###5 | 35/100 [00:04<00:08, 7.98it/s] 36%|###6 | 36/100 [00:04<00:08, 7.99it/s] 37%|###7 | 37/100 [00:04<00:07, 7.99it/s] 38%|###8 | 38/100 [00:04<00:07, 7.99it/s] 39%|###9 | 39/100 [00:04<00:07, 8.00it/s] 40%|#### | 40/100 [00:04<00:07, 8.00it/s] 41%|####1 | 41/100 [00:05<00:07, 8.00it/s]

También obtengo el mismo resultado si hago mi propia barra de progreso como

import sys def progress_bar_cmd(count,total,suffix="",*,bar_len=60,file=sys.stdout): filled_len = round(bar_len*count/total) percents = round(100*count/total,2) bar = "#"*filled_len + "-"*(bar_len - filled_len) file.write( "[%s] %s%s ...%s/r"%(bar,percents,"%",suffix)) file.flush() for i in range(101): time.sleep(1) progress_bar_cmd(i,100,"range 100")

¿¿¿¿porqué es eso????

y hay una manera de arreglarlo ???