Josh Wood Josh Wood - 6 months ago 50
Python Question

python replace single backslash with double backslash

In python, I am trying to replace a single backslash ("\") with a double backslash("\"). I have the following code:

directory = string.replace("C:\Users\Josh\Desktop\20130216", "\", "\\")

However, this gives an error message saying it doesn't like the double backslash. Can anyone help?


No need to use str.replace or string.replace here, just convert that string to a raw string:

>>> strs = r"C:\Users\Josh\Desktop\20130216"
       notice the 'r'

Below is the repr version of the above string, that's why you're seeing \\ here. But, in fact the actual string contains just '\' not \\.

>>> strs

>>> s = r"f\o"
>>> s            #repr representation
>>> len(s)   #length is 3, as there's only one `'\'`

But when you're going to print this string you'll not get '\\' in the output.

>>> print strs

If you want the string to show '\\' during print then use str.replace:

>>> new_strs = strs.replace('\\','\\\\')
>>> print new_strs

repr version will now show \\\\:

>>> new_strs