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.
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", "")
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', '')
Comme mentionné par @john, la réponse la plus robuste est la suivante:
string = "a\nb\rv"
new_string = " ".join(string.splitlines())
ou vous pouvez essayer ceci:
string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)
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.
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
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