Cómo usar una cadena en bruto en Python

Introducción

Puedes crear una cadena sin procesar en Python prefijando una literal de cadena con r o R. La cadena sin procesar de Python trata el carácter de barra invertida (\) como un carácter literal. La cadena sin procesar es útil cuando una cadena necesita contener una barra invertida, como en una expresión regular o en una ruta de directorio de Windows, y no quieres que se trate como un carácter de escape. Este artículo cubre los conceptos básicos de cómo funcionan las cadenas sin procesar de Python y proporciona algunos ejemplos comunes de cómo usar cadenas sin procesar para incluir caracteres especiales en cadenas.

Los ejemplos en este artículo utilizan la consola interactiva de Python en la línea de comandos para demostrar diferentes escenarios de cadenas sin procesar.

Inclusión de un Carácter de Nueva Línea en una Cadena Usando Cadena Sin Procesar

Este ejemplo usa una cadena con un valor: ¡Hola\nHola. Si intentas asignar este valor a una cadena normal, entonces el carácter de nueva línea (\n) crea una nueva línea:

  1. s = 'Hi\nHello'

Imprime la cadena:

  1. print(s)

La salida es:

Hi
Hello

La salida muestra que el carácter de nueva línea resulta en una nueva línea.

Para incluir el carácter de nueva línea en la cadena, agrega el prefijo r o R a la variable de cadena para crear una cadena sin procesar:

  1. raw_s = r'Hi\nHello'

Imprime la cadena:

  1. print(raw_s)

La salida es:

Hi\nHello

La salida incluye el carácter de nueva línea.

Inclusión de caracteres de doble barra invertida en una cadena mediante Cadena sin procesar

Si intentas incluir caracteres de doble barra invertida, como en una ruta de host, en una cadena normal, entonces el primer carácter de barra invertida no se imprimirá porque el compilador lo considera un indicador de escape.

Por ejemplo, crea una cadena que contenga una ruta:

  1. s = '\\examplehost\digitalocean\content\'

Imprime la cadena:

  1. print(s)

La salida es:

\examplehost\digitalocean\content\

La salida muestra que el primer carácter de barra invertida no está incluido en la cadena.

Para incluir ambos caracteres de barra invertida en la cadena, agrega el prefijo r o R a la variable de cadena para crear una cadena sin procesar:

  1. s = r'\\examplehost\digitalocean\content\'

Imprime la cadena:

  1. print(s)

La salida es:

\\examplehost\digitalocean\content\

La salida incluye ambos caracteres de barra invertida.

Errores de solución de problemas y caracteres de barra invertida en cadenas sin procesar

En una cadena sin procesar, las comillas aún se pueden escapar con un solo carácter de barra invertida, sin embargo, el carácter de barra invertida permanece en la cadena sin procesar resultante.

Además, una cadena sin procesar no puede terminar con un número impar de caracteres de barra invertida. Debido a esta característica, no puedes crear una cadena sin procesar que contenga un solo carácter de barra invertida, por lo que r"/" es una cadena no válida.

Ejemplos de cadenas sin procesar no válidas

En este ejemplo, falta la comilla final en la salida ya que está siendo escapada por el carácter de barra invertida, lo que resulta en un error de literal de cadena no terminada:

r'\'

En este ejemplo, los dos primeros caracteres de barra invertida se escaparán entre sí, y el tercero intentará escapar la comilla final, lo que resultará en un error de literal de cadena no terminada:

r'ab\\\'

Ejemplos válidos de cadenas sin procesar

Aquí hay algunos ejemplos de cadenas en bruto válidas que incluyen comillas y caracteres de barra invertida.

Crea una cadena en bruto que escape las comillas:

  1. s = r"\"\""

Imprime la cadena:

  1. print(s)

La salida es:

\"\"

La salida muestra que los caracteres de barra invertida escapan las comillas para que la cadena no termine, pero los caracteres de barra invertida permanecen en la cadena de resultado.

Crea una cadena en bruto con un número par de caracteres de barra invertida:

  1. s = R'ab\\'

Imprime la cadena:

  1. print(s)

La salida es:

ab\\

La salida muestra que el número par de caracteres de barra invertida se incluyen en la cadena de resultado.

Conclusión

En este artículo, aprendiste los conceptos básicos de las cadenas en bruto en Python. Continúa tu aprendizaje sobre las cadenas en Python.

Source:
https://www.digitalocean.com/community/tutorials/python-raw-string