En gros, je demande à l'utilisateur de saisir une chaîne de texte dans la console, mais cette chaîne est très longue et comporte de nombreux sauts de ligne. Comment puis-je prendre la chaîne de l'utilisateur et supprimer tous les sauts de ligne pour en faire une seule ligne de texte ? Ma méthode pour acquérir la chaîne de caractères est très simple.
string = raw_input("Please enter string: ")
Y a-t-il une autre façon de récupérer la chaîne de l'utilisateur ? J'utilise Python 2.7.4 sur un Mac.
P.S. Il est clair que je suis un noob, donc même si une solution n'est pas la plus efficace, celle qui utilise la syntaxe la plus simple serait appréciée.
Comment saisir les sauts de ligne avec raw_input
? Mais, une fois que vous avez une chaîne de caractères dont vous voulez vous débarrasser, il suffit de les "remplacer".
>>> mystr = raw_input('please enter string: ')
please enter string: hello world, how do i enter line breaks?
>>> # pressing enter didn't work...
...
>>> mystr
'hello world, how do i enter line breaks?'
>>> mystr.replace(' ', '')
'helloworld,howdoienterlinebreaks?'
>>>
Dans l'exemple ci-dessus, j'ai remplacé tous les espaces. La chaîne '\n'
représente les nouvelles lignes. Et 'r
représente les retours de chariot (si vous êtes sous Windows, il se peut que vous les obteniez et un second replace
les gérera pour vous !)
En gros :
# you probably want to use a space ' ' to replace `\n`
mystring = mystring.replace('\n', ' ').replace('\r', '')
Notez aussi, que c'est une mauvaise idée d'appeler votre variable string
, car cela fait de l'ombre au module string
. Un autre nom que j'éviterais mais que j'aimerais utiliser parfois : file
. Pour la même raison.
Vous pouvez essayer d'utiliser le remplacement de chaîne :
string = string.replace('\r', '').replace('\n', '')
Mise à jour basée sur le commentaire de Xbello
:
string = my_string.rstrip('\r\n')
lire la suite [ici] [1]
[1] : http://www.tutorialspoint.com/python/string_rstrip.htm