J'ai un petit souci avec la lecture de sys.stdin. Je souhaite faire un programme qui effectue quelques traitements sur l'entrée standard. J'explique :
Le programme doit s'exécuter comme suit : cat file | python prog.py
Je lis l'entrée en faisant : for i in sys.stdin: #lecture ligne par ligne de stdin print i
Le problème est que quand le programme est appelé direct par: python prog.py, il bloque indefiniement.
Comment tester si stdin contient quelque chose pour éviter de bloquer ?
if not sys.stdin.isatty(): # sys.stdin reçoit un fichier "non interactif" for line in sys.stdin: #lecture ligne par ligne de stdin print line
Nicolas Maupu
if not sys.stdin.isatty(): # sys.stdin reçoit un fichier "non interactif" for line in sys.stdin: #lecture ligne par ligne de stdin print line Excellent, ça fonctionne !
Merci beaucoup ;)
-- Nico
if not sys.stdin.isatty():
# sys.stdin reçoit un fichier "non interactif"
for line in sys.stdin:
#lecture ligne par ligne de stdin
print line
Excellent, ça fonctionne !
if not sys.stdin.isatty(): # sys.stdin reçoit un fichier "non interactif" for line in sys.stdin: #lecture ligne par ligne de stdin print line Excellent, ça fonctionne !