J'ai cette boucle qui lit les lignes de STDIN jusqu'à ce qu'une nouvelle ligne soit entrée, cependant, cela ne fonctionne que de la saisie de l'entrée. Comment puis-je obtenir le programme pour lire des lignes d'une STDIN redirigée via la ligne de commande?
Par exemple: p> Voici la boucle que je dois lire des lignes de l'entrée : p>
3 Réponses :
ETA: Basé sur votre commentaire dans une boucle infinie, vous n'avez probablement pas de ligne vide à la fin du fichier.
Utilisez un tuyau caractère: p> si entrée .Input code> est en fait un fichier plutôt qu'un flux, utilisez chat a > Pour créer un flux de celui-ci: P>
cat input.input | python graph.py
Comment ça est censé aider ??
Comme d'autres personnes ont mentionné, votre condition line == '\ n' code> ne reste jamais vrai. La solution appropriée serait d'utiliser une boucle comme:
Considérez l'option suivante
import sys sys.stdin = open("input.txt", "r")
Le programme est suspendu à la deuxième ligne de la boucle et ne cesse pas, à moins que je ne l'interrète avec le clavier.
Êtes-vous sûr que votre fichier se termine par une ligne '\ n'? Vous courez probablement dans une boucle infinie ici. Il est probable que votre fichier se termine par une ligne code> '' code>.