Frederic Rentsch wrote: > Kay Schluehr wrote: > > Sybren Stuvel wrote: > > > >> Kay Schluehr enlightened us with: > >> > >>> Usually I struggle a short while with \ and either succeed or give up. > >>> Today I'm in a different mood and don't give up. So here is my > >>> question: > >>> > >>> You have an unknown character string c such as '\n' , '\a' , '\7' etc. > >>> > >>> How do you echo them using print? > >>> > >>> print_str( c ) prints representation '\a' to stdout for c = '\a' > >>> print_str( c ) prints representation '\n' for c = '\n' > >>> ... > >>> > >>> It is required that not a beep or a linebreak shall be printed. > >>> > >> try "print repr(c)". > >> > > > > This yields the hexadecimal representation of the ASCII character and > > does not simply echo the keystrokes '\' and 'a' for '\a' ignoring the > > escape semantics. One way to achieve this naturally is by prefixing > > '\a' with r where r'\a' indicates a "raw" string. But unfortunately > > "rawrification" applies only to string literals and not to string > > objects ( such as c ). I consider creating a table consisting of pairs > > {'\0': r'\0','\1': r'\1',...} i.e. a handcrafted mapping but maybe > > I've overlooked some simple function or trick that does the same for > > me. > > > > Kay > > > > > Kay, > > This is perhaps yet another case for SE? I don't really know, because I > don't quite get what you're after. See for yourself: > > >>> import SE > >>> Printabilizer = SE.SE ( ''' > (1)=\\1 # All 256 octets can be written as parenthesized ascii > (2)=\\2 > "\a=\\a" # (7)=\\a" > "\n=\\n" # or (10)=\\n or (10)=LF or whatever > "\r=\\r" # (13)=CR > "\f=\\f" > "\v=\\v" > # Add whatever other ones you like > # and translate them to anything you like. > ''') > > >>> print Printabilizer ('abd\aefg\r\nhijk\vlmnop\1\2.') > abd\aefg\r\nhijk\vlmno\1\2. > > > If you think this may help, you'll find SE here: > http://cheeseshop.python.org/pypi/SE/2.2%20beta > > > Regards > > Frederic
This looks quite good. "rawrification" or "printabalization" that's exactly what I was looking for and I thought this problem would be so common that someone has done an implementation already. Thanks, Frederik! Kay -- http://mail.python.org/mailman/listinfo/python-list