Este es mi código para reemplazar cadenas pero no funciona como se esperaba.

#!/usr/bin/python
import sys
import fileinput
import string

filename = 'C:\sample\test\test.txt'
newfilename = string.replace(filename, '\\', '\\\\')

La salida esperada es newfilename debe ser "C:\\\sample\\\test\\\test.txt" pero es lo mismo que filename.

¿Qué debo hacer para obtener el resultado esperado?

0
user1164061 27 oct. 2017 a las 22:01

3 respuestas

La mejor respuesta

Esto podría parecer mucho más simple:

filename = r"C:\sample\test\test.txt"
newfilename = filename.replace('\\', '\\\\')

print newfilename
5
sotona 27 oct. 2017 a las 19:09

¡Necesita escapar de las barras invertidas en su cadena de nombre de archivo original! Actualmente, está configurando filename para que sea C\sample<tab>est<tab>est.txt, donde he representado el carácter de tabulación como.

0
Izaak Weiss 27 oct. 2017 a las 19:11

Pruebe en lugar de string.replace(filename, '\\', '\\\\'), con filename.replace('\\', '\\\\')

0
Yanet Francisco 27 oct. 2017 a las 19:11