[Programación][Python] Input desde consola con autoreturn en Python?

Mario OROZ mario.oroz en gmail.com
Jue Ago 30 09:10:54 ART 2012


El 29/08/2012 04:36 p.m., Fabian Ezequiel Gallina escribió:
> El día 29 de agosto de 2012 16:25, Mario OROZ <mario.oroz en gmail.com> escribió:
>> Hola gente,
>> Hay algún modulo o función que me permita ingresar inputs desde
>> consola con autoreturn, es decir sin darle ENTER.
>> Imaginen la lectura de codigos de barra como input. Se entiende?
>> El modulo msvcrt se acerca pero lee solo 1 caracter... y es para
>> plataformas Win solamente.
>>
>> Saludos
>> Mario.
>>
> Podés leer un sólo caracter son sys.stdin.read(1). Ponele que sabés
> cuándo cortar la lectura (algo onda número de caracteres leídos o algo
> por el estilo) tendrías algo así:
>
> chars = []
>
> while True:
>     chars.append(sys.stdin.read(1))
>     if condicion_corte(): break
>
> string = ''.join(chars)
>
>
Gracias Fabian y Emiliano;
Les cuento que me apure demasiado! ;)
El lector de barras que uso, o a los que tengo acceso; son del
tipo que interceptan el teclado, es decir el cable es una "Y"; en los
extremos esta el teclado y el escaner y la otra punta se conecta al
puerto PS/2 del teclado en la PC.

Entonces al probar anoche con el escaner... sorpresa! la función
raw_input() toma la entrada del escaner con autoreturn, es decir
sigue con el otro campo!

Lo que me llama la atención de lo que menciona Emiliano es que
por  mas que el lector mande el tailing '\n'; la funcion raw_input()
los limpia y entrega un string sin 'CR'.

Por lo que me deja desconcertado el comportamiento de este
tipo escaner, aunque me salve de renegar bastante.

Estuve jugando un poco con el script de Fabian pero tengo
que probarlo mas, para tenerlo en el recetario!

Saludos.
Mario.





Más información sobre la lista de distribución Programacion