Qu'est-sys.stdin lire?
- Je obtenir comment ouvrir des fichiers, et ensuite utiliser Python pré construit dans les fonctions avec eux. Mais comment fait-sys.stdin travail?
for something in sys.stdin:
some stuff here
lines = sys.stdin.readlines()
Quelle est la différence entre ces deux usages différents sur sys.stdin? Où est-il de la lecture de l'information? C'est via le clavier, ou avons-nous encore à fournir un fichier?
Êtes-vous familier avec
input()
? Partout où input()
allait partir, c'est sys.stdin
. Qui peut être un terminal, ou il peut être réalisé à partir d'un fichier, ou il pourrait être à venir à partir d'un autre programme de sortie, ou il pourrait être quelque chose d'autre, selon la façon dont vous avez appelé le programme.
OriginalL'auteur Vimzy | 2015-04-05
Vous devez vous connecter pour publier un commentaire.
Si vous avez utilisé Python "pré construit en fonctions", sans doute comme ceci:
Ce lit le fichier en invoquant un itérateur sur le fichier objet qui arrive à retourner la ligne suivante dans le fichier.
Vous pourriez utiliser:
qui lit les lignes de la position courante dans le fichier dans une liste.
Maintenant,
sys.stdin
est juste un autre objet fichier, ce qui arrive à être ouvert que par du Python avant le début de votre programme. Ce que vous faites avec ce fichier objet est à vous, mais il n'est pas vraiment différent de tout autre objet fichier, c'est juste que vous n'avez pas besoin d'unopen
.va itérer sur l'entrée standard jusqu'à la fin de fichier est atteinte. Et il en sera de ce:
Votre première question est vraiment sur les différentes manières d'utiliser un fichier objet.
Deuxième, où est-il la lecture? C'est la lecture du descripteur de fichier 0 (zéro). Sur Windows, c'est le descripteur de fichier 0 (zéro). Descripteur de fichier/poignée de 0 est connecté à la console ou à l'ats par défaut, donc en effet c'est la lecture à partir du clavier. Toutefois, il peut être redirigé, souvent par un shell (comme bash ou cmd.exe) à l'aide de la syntaxe ressemble à ceci:
Qui modifie le fichier descripteur de zéro pour lire un fichier au lieu du clavier. Sur UNIX ou Linux, il utilise l'appel sous-jacent
dup2()
. Lire votre shell de la documentation pour plus d'informations sur la redirection (ou peut-êtreman dup2
si vous êtes courageux).En python 3, un flux de texte.
OriginalL'auteur cdarke
C'est la lecture de la entrée standard - et il doit être fourni par le clavier sous la forme de flux de données.
Il n'est pas nécessaire de fournir un fichier, mais vous pouvez utiliser la redirection d'utiliser un fichier comme entrée standard.
En Python, le
readlines()
méthode lit l'ensemble du flux de, et répartit ensuite à la caractère de saut de ligne et crée une liste de chaque ligne.Ci-dessus crée une liste appelée lignes, où chaque élément aura une ligne (tel que déterminé par le caractère de fin de ligne).
Vous pouvez en lire plus à ce sujet à la d'entrée et de sortie de la section de le tutoriel Python.
Si vous voulez demander à l'utilisateur pour l'entrée, utilisez la
input()
méthode (en Python 2, utilisezraw_input()
):OriginalL'auteur Burhan Khalid
Le code ci-dessus ne fonctionne pas comme prévu, car
sys.stdin
est un descripteur de fichier - c'est un handle de fichier pour lestdin
. Il n'atteindra pas lesome stuff here
ligneLorsque le script est exécuté dans un shell interactif, il permet de bloquer l'exécution jusqu'à ce qu'un utilisateur appuie sur Ctrl-D, qui indique la fin de l'entrée.
OriginalL'auteur Anthony Kong
Pour bien comprendre comment sys.stdin œuvres suivantes:
créer un simple script python, faisons le nom de "readStdin.py":
Maintenant, ouvrez la console de tout type:
Le script sorties:
Donc, le script a lire l'entrée dans la liste (nommé "lignes"), y compris le caractère de nouvelle ligne produit par 'echo'. Qui est.
OriginalL'auteur Andrushenko Alexander
Selon moi sys.stdin.méthode read() accepte une ligne de l'entrée de l'utilisateur jusqu'à ce qu'un caractère spécial comme la Touche Entrée et suivie par Ctrl + D puis enregistre l'entrée de la chaîne.
Contrôle + D œuvres que le signal d'arrêt.
Exemple:
Après l'exécution du programme entrez deux nombres délimité par l'espace et après avoir terminé appuyez sur ctrl + D une fois ou deux fois et il vous sera présenté par la somme des deux entrées.
OriginalL'auteur Mr. Suryaa Jha