En Python, ¿cómo se comprueba si sys.stdin
tiene datos o no?¿Cómo verifico si stdin tiene algunos datos?
Encontré que os.isatty(0)
no solo puede verificar si stdin está conectado a un dispositivo TTY, sino también si hay datos disponibles.
Pero si alguien usa un código como
sys.stdin = cStringIO.StringIO("ddd")
y después de eso utiliza os.isatty(0)
, todavía devuelve True. ¿Qué debo hacer para verificar si stdin tiene datos?
¿Qué es exactamente lo que quiere lograr? – shahjapan
Eso está sucediendo porque 'os.isatty (0)' verifica si el archivo asociado al descriptor de archivo (fd) 0 es un TTY. Cuando cambia la variable 'sys.stdin', no está cambiando el archivo asociado a fd0. fd0 todavía apunta al stdin original (que es un TTY en su caso). –
Compruebe [esta respuesta] (http://stackoverflow.com/questions/3731681/capturing-user-input-at-arbitrary-times-in-python/3732001#3732001). ¿Pertenece a tu pregunta? –