single-quoted string conversion to triple-quoted string

robin and jim robinjim at earthlink.net
Sun Apr 7 08:57:23 EDT 2002


You understood exactly what I was hoping for.

 Thanks for your posting.


"Bengt Richter" <bokr at oz.net> wrote in message
news:a8odr2$rdh$0 at 216.39.172.122...
> On Sat, 06 Apr 2002 01:45:32 GMT, "Emile van Sebille" <emile at fenx.com>
wrote:
>
> >"robin and jim" <robinjim at earthlink.net>
> >> Is there a way to convert a single quoted string to a triple quoted
> >string?
> >>
> >> For example, given:
> >>
> >> ''' abc %d xyz '''
> >>
> >> the result of ''' abc %d xyz''' % 10 is:
> >>
> >> ' abc 10 xyz '
> >>
> >> which is a single quoted string.
> >>
> >> I would like to convert the result to a triple-quoted string.
> >>
> >>
> >
> >What do you want to do with it?  Once a string is created, it doesn't
> >matter which style quoting was used -- it's simply a string.
> >
> True, but notice:
>
>  >>> """ ' """
>  " ' "
>  >>> """ " """
>  ' " '
>  >>> """ ' " """
>  ' \' " '
>  >>>
>
> perhaps he would have liked """ ' " """ back instead of ' \' " '
> Seems like just as valid as switching the other quotes, e.g., a quick hack
> to simulate extending the quote-choosing of repr:
>
>  >>> def repr3(x):
>  ...     rep = repr(x)
>  ...     if rep.find('\\n')<0 and rep[1:-1].find("\\'")<0: return rep
>  ...     rep=rep[1:-1].replace('\\n','\n')
>  ...     rep=rep.replace("\\'","'")
>  ...     return '"""' + rep + '"""'
>  ...
>  >>> tests = [""" ' """, """ " """, """ ' " """, """Line 1
>  ... Line 2"""]
>  >>> for t in tests: print 'plain: %s\n repr: %s\nrepr3: %s\n'% (t,
repr(t), repr3(t))
>  ...
>  plain:  '
>   repr: " ' "
>  repr3: " ' "
>
>  plain:  "
>   repr: ' " '
>  repr3: ' " '
>
>  plain:  ' "
>   repr: ' \' " '
>  repr3: """ ' " """
>
>  plain: Line 1
>  Line 2
>   repr: 'Line 1\nLine 2'
>  repr3: """Line 1
>  Line 2"""
>
> Regards,
> Bengt Richter
>





More information about the Python-list mailing list