2012-08-16 16 views
9

Tengo algunos datos de texto que están imprimiendo los caracteres reales "\ r \ n" (cuatro caracteres en total). Me gustaría reemplazar esos cuatro personajes con el único carácter "\ n", pero parece que no puedo hacer que Python lo haga por mí. Actualmente estoy tratando de:Reemplazando " r n" por " n"

mytext.replace("\r\n", "\n") 

Pero eso se limita a imprimir "\ n" (dos caracteres, uno no). Siento que probablemente me esté perdiendo algo obvio, pero cualquier ayuda sería apreciada.

+2

Si es un archivo, puede leerlo con 'open (file_name, 'rU')' y todos serán ''\ n'' – jamylak

Respuesta

15

yo recomendaría usar splitlines en lugar de una expresión regular o buscar/reemplazar

"\n".join(mytext.splitlines()) 
+0

Esta debería ser la solución – geotheory

0

Lo sentimos, leí mal su pregunta:

En ese caso, se debe anteponer su cadena con ar a utilizar cadenas primas:

mytext.replace(r"\r\n", r"\n") 
+0

si" \ r \ n "- tiene 4 caracteres y luego eliminar 2 no lo hará ayuda/ – Stals

13
mytext.replace(r"\r\n", r"\n") 

La 'r' denota una cadena de texto, que le dice a Python que interprete las barras invertidas en el texto como caracteres literales y no como caracteres de escape.

+2

Esto no hace nada por mí (ubuntu) – geotheory

3

"\n".join(mytext.splitlines()) Esto funciona para mí. mytext.replace(r"\r\n", r"\n"), esto no funciona.

2

Esta es una solución para probar si alguno de los anteriores no funcionó (que fue el caso para mí el uso de Anaconda Distribution of Python3).

mytext.replace("\\r\\n", "\\n") 

Esto tiene que ver con \ se utiliza como un carácter de escape. Pensé que las respuestas anteriores que utilizaban el formateador de cadenas en bruto lograrían lo mismo, pero por alguna razón eso no funcionó para mí, y esto fue así.

Cuestiones relacionadas