How to prevent automatic escaping of special characters in Python

If your winpath is hard-coded, you may want to use r before your string to indicate it is a "raw string".

winpath = r"C:\Users\Administrator\bin"

If winpath cannot be hardcoded, you can try to create a new string as:

escaped_winpath = "%r" % winpath

(which is just repr(winpath), and won't really help you, as repr("\bin") is...)

A solution would be to rebuild the string from scratch: you can find an example of function at that link, but the generic idea is:

escape_dict={'\a':r'\a',
             '\b':r'\b',
             '\c':r'\c',
             '\f':r'\f',
             '\n':r'\n',
             '\r':r'\r',
             '\t':r'\t',
             '\v':r'\v',
             '\'':r'\'',
             '\"':r'\"'}

def raw(text):
    """Returns a raw string representation of text"""
    new_string=''
    for char in text:
        try: 
            new_string += escape_dict[char]
        except KeyError: 
            new_string += char
    return new_string

and now, raw("\bin") gives you "\\bin" (and not "\\x08in")...


You can create a raw string by prepending r to the string literal notation

r"hello\nworld"

becomes

"hello\\nworld"

You can read some more here