> Whenever I take any input (raw_input, of course!) or I read from a > file, etc., any backslashes get escaped automatically.
They don't get escaped, they get... treated as the bytes that they are. If you want them to mean what they do in Python, use the 'string_escape' codec. >>> x = r'nyan\nyan' >>> print x nyan\nyan >>> print x.decode('string_escape') nyan yan -- Devin On Sun, Dec 25, 2011 at 8:04 PM, Felipe O <pip....@gmail.com> wrote: > Hi all, > Whenever I take any input (raw_input, of course!) or I read from a > file, etc., any backslashes get escaped automatically. Is there any > elegant way of parsing the backslashes as though they were written in > a python string. The best I have so far right now goes like this: > > def parse_backslash_escapes(input_string): > parts = input_string.split("'''") # That's ' " " " ' without the spaces > '"""'.join(eval + p + '"""') for p in parts) > > I'm not entirely convinced that it's safe on two accounts. > + Is that eval statement safe? The input could be coming from an > unfriendly source. > + Are there any obscure backslash escapes or other tricks I should be aware > of? > > I guess the alternative is to make a dictionary of all the escapes I > want to support, but that sounds tedious and error-prone. > > Thanks, > > Felipe > -- > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list