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.
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 />
.
thatLine = thatLine.replace('\n', '<br />')
str.replace () renvoie une copie de la chaîne, elle ne modifie pas la chaîne que vous transmettez.
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())
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!
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.
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
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
.