2010-12-11 24 views
14

Tengo la cadena U, su contenido es variable. Me gustaría convertirlo en una cadena en bruto. ¿Cómo hago esto?Python Raw Strings

Algo similar al método r ''.

U = str(var) 
+6

Las cadenas sin formato son solo una sintaxis diferente al definir una constante de cadena. ¿Qué es en particular lo que quieres de var que te haga pensar en usar cadenas sin formato? –

+1

¿Estás usando Python 2 o Python 3? Si Python 3, ¿está preguntando sobre el tipo 'bytes'? –

Respuesta

17

Las cadenas sin formato se aplican solo a los literales de cadena. existen para que pueda expresar de manera más conveniente cadenas que serían modificadas por el proceso de secuencia de escape. Esto es especialmente útil cuando escribe expresiones regulares u otras formas de código en cadenas literales. si desea una cadena Unicode sin proceso de escape, simplemente prefíquela con ur, como ur'somestring'.

+6

No esperaría que @TokenMacGuy lo supiera, pero también son útiles para definir rutas en Windows que usan la barra diagonal inversa como un carácter separador en las rutas, como 'r'C: \ Python27 \ Tools \ Scripts \ 2to3. py'' – martineau

+8

Alas, TokenMacGuy es solo el nombre. Mi máquina principal ejecuta Windows. la razón * real * por la que no utilizo las cadenas sin formato para los filepaths es porque nunca codifico los nombres de las rutas. – SingleNegationElimination

35

Las cadenas sin formato son no es un tipo diferente de cadena. Son una forma diferente de describir una cadena en su código fuente. Una vez que se crea la cadena, es lo que es.

+6

+1 para el uso raro y preciso de "es lo que es" – LoveMeSomeCode

+0

esto es realmente incorrecto. Aquí hay otra respuesta con la respuesta correcta: "las cadenas sin formato no escapan a nada dentro de ellas". – igorsantos07

26

Creo que lo que estás buscando es la función str.encode ("string-escape"). Por ejemplo, si tiene una variable que se desee 'cadena de texto':

a = '\x89' 
a.encode('unicode_escape') 
'\\x89' 

Nota: El uso de Python 2.x string-escape y versiones anteriores

que estaba buscando una solución similar y encontró la solución a través de: casting raw strings python

+0

esta es la solución. – erikbwork

+4

En python 3.5.1: 'LookupError: codificación desconocida: string-escape' – nnyby

+0

@nnyby Use' unicode_escape' en su lugar –