raw format string in string format method?

Chris Angelico rosuav at gmail.com
Thu Feb 28 10:09:31 EST 2013


On Fri, Mar 1, 2013 at 1:42 AM, Helmut Jarausch <jarausch at skynet.be> wrote:
> On Fri, 01 Mar 2013 01:22:48 +1100, Chris Angelico wrote:
>
>> On Fri, Mar 1, 2013 at 1:11 AM, Helmut Jarausch <jarausch at skynet.be>
>> wrote:
>>> Hi,
>>>
>>> I'd like to print a string with the string format method which uses
>>> {0}, ...
>>>
>>> Unfortunately, the string contains TeX commands which use lots of
>>> braces. Therefore I would have to double all these braces just for the
>>> format method which makes the string hardly readable.
>>>
>>> Is there anything like a "raw" format string and any other means to
>>> circumvent this?
>>
>> You could use a different string formatting function, such as
>> percent-formatting:
>>
>> "Hello, {0}, this is %s" % some_string
>>
>> The {0} will be output literally, and the %s will be replaced by the
>> string. Braces are ignored, percent signs are significant.
>>
>> ChrisA
>
> Originally I had used percent-formatting
> But isn't  it deprecated in Python 3.X ?

No, it's still fully supported. Every now and then someone suggests
that it's worse than .format() for some reason or another, but the
fact is that it's not going away. Use whichever one makes the most
sense.

Yes, this is a slight violation of "one obvious way to do it". But
it's handy to have both format methods; they have overlapping but
distinct feature sets.

ChrisA



More information about the Python-list mailing list