web-dev-qa-db-fra.com

Supprimer toutes les nouvelles lignes de l'intérieur d'une chaîne

J'essaie de supprimer tous les caractères de nouvelle ligne d'une chaîne. J'ai lu comment faire, mais il semble que pour une raison quelconque, je suis incapable de le faire. Voici, étape par étape, ce que je fais:

string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2

Et je vois toujours le caractère de nouvelle ligne dans la sortie. J'ai aussi essayé avec rstrip, mais je vois toujours la nouvelle ligne. Quelqu'un pourrait-il nous expliquer pourquoi je ne le fais pas correctement? Merci.

28
LandonWO

strip supprime uniquement les caractères du début ou de la fin d'une chaîne. Vous voulez utiliser replace:

str2 = str.replace("\n", "")
48
mipadi

strip() renvoie la chaîne après avoir supprimé les espaces de début et de fin. voir doc

Dans votre cas, vous voudrez peut-être essayer replace () :

string2 = string1.replace('\n', '')
3
sradack

Comme mentionné par @john, la réponse la plus robuste est la suivante:

string = "a\nb\rv"
new_string = " ".join(string.splitlines())
3
Chris Sewell

ou vous pouvez essayer ceci:

string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)
2
jkalivas

Répondre tardivement depuis que j'ai récemment eu la même question lors de la lecture du texte d'un fichier; essayé plusieurs options telles que:

with open('verdict.txt') as f: 

La première option ci-dessous produit une liste nommée alist, avec '\n' dépouillé, puis rejoint le texte intégral (facultatif si vous souhaitez avoir un seul texte):

alist = f.read().splitlines()
jalist = " ".join(alist)

La deuxième option ci-dessous est beaucoup plus facile et simple produit une chaîne de texte appelée atext en remplaçant '\n' par un espace;

atext = f.read().replace('\n',' ')

Ça marche; Je l'ai fait. C'est propre, facile et efficace.

1
john

strip () renvoie la chaîne avec les espaces blancs de début et de fin (par défaut) supprimés.

Donc, " Hello World " deviendrait "Hello World", mais cela ne supprime pas le caractère\n car il est présent entre les chaînes. 

Essayez replace () .

str = "Hello \n World"
str2 = str.replace('\n', '')
print str2
0
Braden Jageman

Si le fichier inclut un saut de ligne au milieu du texte, ni strip() ni rstrip() ne résoudront le problème, 

famille de bande sont utilisés pour couper à partir du début et la fin de la chaîne

replace() est le moyen de résoudre votre problème 

>>> my_name = "Landon\nWO"
>>> print my_name
   Landon
   WO

>>> my_name = my_name.replace('\n','')
>>> print my_name
LandonWO
0
ibmstafa