Lecture d'une ligne à partir d'une entrée standard en Python

Quel sont les différences entre les deux méthodes suivantes de la lecture d'une ligne de l'entrée standard: raw_input() et sys.stdin.readline()? Et dans quels cas l'une de ces méthodes est préférable à l'autre ?

26
demandé sur Grigor Gevorgyan 2011-08-06 14:32:39

2 réponses

raw_input () prend un prompt argument. Il enlève également le caractère de la nouvelle ligne de la chaîne de caractères qu'il renvoie, et soutient les traits d'histoire si le readline le module est chargé.

readline () prend un size argument, ne supprime pas le caractère de fin de ligne et ne supporte pas l'histoire que ce soit.

Puisqu'ils ne font pas la même chose, ils ne sont pas vraiment interchangeables. Personnellement, je préférez l'utilisation de raw_input() pour récupérer la saisie de l'utilisateur, et readline() pour lire les lignes d'un fichier.

35
répondu Frédéric Hamidi 2017-06-18 12:53:16

" cependant, du point de vue de nombreux débutants et éducateurs en Python, l'utilisation de sys.stdin.readline() présente les problèmes suivants:

  1. comparé au nom "raw_input", le nom "sys.stdin.readline()" est maladroit et peu élégante.

  2. les noms "sys" et "stdin" n'ont aucun sens pour la plupart des débutants, qui sont principalement intéressés par ce que fait la fonction, et non où dans la structure du paquet elle est située. Le manque de sens aussi rend difficile de se souvenir: est-il " sys.stdin.readline ()", ou " stdin.sys.readline()"? Pour un novice de la programmation, il n'y a pas de raison évidente de préférer l'un à l'autre. En revanche, les fonctions simples et les noms directs comme print, input et raw_input, et open sont plus faciles à retenir."à partir d'ici: http://www.python.org/dev/peps/pep-3111/

8
répondu Mariy 2011-08-06 10:37:13