ammar azif wrote: > Hi, > > i wanted to get a string from raw_input like this > > raw_input('>') > > \n\nsomestring > > but the problem is raw input will return the string > '\\n\\nsomestring'
This is a bit confusing to talk about because the actual contents of the string differ from what is printed. I don't know if you realize that or not so I'll start at the beginning. In [3]: s= raw_input('> ') > one\r\ntwo In [4]: s Out[4]: 'one\\r\\ntwo' When the interpreter outputs a string, it outputs it in the form of a string constant. Any actual \ in the string is escaped with an extra \. The string s contains single \ characters. You can verify this by getting the length: In [5]: len(s) Out[5]: 10 or by outputting it with print, which just outputs the actual characters: In [6]: print s one\r\ntwo So s does contain the same characters as typed. > My question is > Are there any function to convert back those string to '\n\nsomestring' ? You don't want the four literal characters \, r, \, n, you want a carriage return / newline combination. raw_input() doesn't interpret escape characters but there is a way to convert them: In [7]: t=s.decode('string_escape') Now t contains a carriage return / newline instead of the escape characters: In [8]: t Out[8]: 'one\r\ntwo' In [9]: len(t) Out[9]: 8 In [10]: print t one two Kent _______________________________________________ Tutor maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/tutor