web-dev-qa-db-fra.com

Remplacer \ n par <br />

J'analyse le texte d'un fichier avec Python. Je dois remplacer toutes les nouvelles lignes (\ n) par
car ce texte créera du contenu html. Par exemple, voici une ligne du fichier:

'title\n'

Maintenant oui:

thatLine.replace('\n', '<br />')
print thatLine

Et je vois toujours le texte avec la nouvelle ligne après.

37
Max Frai

Juste pour les coups de pied, vous pourriez aussi faire

mytext = "<br />".join(mytext.split("\n"))

pour remplacer tous les retours à la ligne d'une chaîne par <br />.

49
Tim Pietzcker

thatLine = thatLine.replace('\n', '<br />')

str.replace () renvoie une copie de la chaîne, elle ne modifie pas la chaîne que vous transmettez.

146
Falmarri

Pour gérer de nombreux délimiteurs de nouvelle ligne, y compris des combinaisons de caractères comme \r\n, utilisez splitlines (voir cet article connexe ) utilisez ce qui suit:

'<br />'.join(thatLine.splitlines())
8
user3780389

Pour une raison quelconque, en utilisant python3, j'ai dû échapper au signe "\"

somestring.replace('\\n', '')

J'espère que ceci aide quelqu'un d'autre!

8
Mikko Pöri
thatLine = thatLine.replace('\n', '<br />')

Les chaînes de caractères Python sont immuables. Vous devrez peut-être les recréer avec l'opérateur d'affectation.

7
erickb

Vous pouvez également rencontrer des problèmes si la chaîne contient des caractères <, > Ou &, Etc. Passez-la à cgi.escape() pour les gérer.

http://docs.python.org/library/cgi.html?highlight=cgi#cgi.escape

4
greggo

Le problème est que lorsque vous dénotez '\n' Dans l'appel replace(), '\n' Est traité comme un String length=4 Composé de ' \ n '
Pour vous en débarrasser, utilisez la notation ascii. http://www.asciitable.com/

exemple:

newLine = chr(10)
thatLine=thatLine.replace(newLine , '<br />')

print(thatLine) #python3

print thatLine #python2.

1
user2458922