En python, comment vérifier si sys.stdin
a des données ou pas?Comment vérifier si stdin a des données?
J'ai trouvé que os.isatty(0)
peut non seulement vérifier si stdin est connecté à un appareil TTY, mais aussi s'il y a des données disponibles.
Mais si quelqu'un utilise un code tel que
sys.stdin = cStringIO.StringIO("ddd")
et après qui utilise os.isatty(0)
, il retourne toujours vrai. Que dois-je faire pour vérifier si stdin a des données?
exactement ce que vous voulez réaliser? – shahjapan
Cela se produit parce que 'os.isatty (0)' vérifie si le fichier associé au descripteur de fichier (fd) 0 est un TTY. Lorsque vous modifiez la variable 'sys.stdin', vous ne modifiez pas le fichier associé à fd0. fd0 pointe toujours sur le stdin d'origine (qui est un TTY dans votre cas). –
Cochez cette réponse (http://stackoverflow.com/questions/3731681/capturing-user-input-at-arbitrary-times-in-python/3732001#3732001). Cela concerne-t-il votre question? –