Convertir barra diagonal hacia atrás para barra diagonal en python

Hola, he leído artículos relacionados con la conversión hacia atrás a barras diagonales. Pero sol era usar una cuerda cruda.

Pero el problema en mi caso es:

Obtendré la ruta del archivo dinámicamente a una variable var = ‘C: \ dummy_folder \ a.txt’ En este caso, necesito convertirlo a barras diagonales. Pero debido a ‘\ a’, no puedo convertir a barras inclinadas

¿Cómo lo convierto? O ¿Cómo debo cambiar esta cadena a cadena sin formato para que pueda cambiarla a una barra diagonal?

No hagas esto Solo usa os.path y deja que maneje todo. No debe establecer explícitamente las barras inclinadas hacia delante o hacia atrás.

 >>> var=r'C:\dummy_folder\a.txt' >>> var.replace('\\', '/') 'C:/dummy_folder/a.txt' 

Pero de nuevo, no lo hagas. Solo usa os.path y se feliz!

También está os.path.normpath (), que convierte barras diagonales inversas y barras diagonales en función del sistema operativo local. Consulte aquí para obtener información detallada sobre el uso. Lo usarías de esta manera:

 >>> string = r'C:/dummy_folder/a.txt' >>> os.path.normpath(string) 'C:\dummy_folder\a.txt' 

Manejar caminos como una simple cuerda podría ponerte en problemas; aún más si la ruta que está manejando es una entrada del usuario o puede variar en formas impredecibles.

Los diferentes sistemas operativos tienen formas diferentes de express la ruta de un archivo dado, y cada lenguaje de progtwigción moderno tiene métodos propios para manejar las rutas y las referencias del sistema de archivos. Seguramente Python y Ruby lo tienen:

  • Python: os.path
  • Ruby: File y FileUtils

Si realmente necesitas manejar cuerdas:

  • Python: string.replace
  • Ruby: string.gsub

Las cadenas en bruto son para literales de cadena (escritas directamente en el archivo de origen), lo que no parece ser el caso aquí. En cualquier caso, las barras diagonales no son caracteres especiales, se pueden incrustar en una cadena normal sin problemas. Es una barra invertida que normalmente tiene otro significado en una cadena y necesita ser “escapada” para que se la interprete como una barra invertida literal.

Para reemplazar las barras invertidas con barras diagonales:

 # Python: string = r'C:\dummy_folder\a.txt' string = string.replace('\\', '/') # Ruby: string = 'C:\\dummy_folder\\a.txt' string = string.gsub('\\', '/') 
 >>> 'C:\\dummy_folder\\a.txt'.replace('\\', '/') 'C:/dummy_folder/a.txt' 

En un literal de cadena, necesita escapar del carácter \ .