8
votes

Lire l'entrée de STDIN redirigée avec Python

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: xxx

Voici la boucle que je dois lire des lignes de l'entrée : xxx


2 commentaires

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 '' .


3 Réponses :


3
votes

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> xxx pré>

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


1 commentaires

Comment ça est censé aider ??



13
votes

Comme d'autres personnes ont mentionné, votre condition line == '\ n' ne reste jamais vrai. La solution appropriée serait d'utiliser une boucle comme: xxx


0 commentaires

3
votes

Considérez l'option suivante

import sys
sys.stdin = open("input.txt", "r")


0 commentaires