[Python-Dev] Incorrect behavior in str.format() method when padding with '\x00'

R. David Murray rdmurray at bitdance.com
Thu Apr 3 17:37:49 CEST 2014


On Thu, 03 Apr 2014 11:20:20 -0400, "Eric V. Smith" <eric at trueblade.com> wrote:
> On 04/02/2014 04:08 PM, John Tyree wrote:
> > 
> > Hi all,
> > 
> > Is there any particularly reason for the following behavior on both
> > 2.7.6 and 3.4.0 ?
> > 
> >     >>> "{:\x00<5}".format(2)
> >     '2    '
> >     >>>
> >     "{:\x20<5}".format(2)                                                                                                
> > 
> >     '2    '
> >     >>>
> >     "{:\x01<5}".format(2)                                                                                                
> > 
> >     '2\x01\x01\x01\x01'
> >     >>> "{:\x00<5}".format(2) ==
> >     "{:\x20<5}".format(2)                                                                       
> > 
> >     True
> > 
> > 
> > The docs say "If a valid /align/ value is specified, it can be preceded
> > by a /fill/ character that can be any character and defaults to a space
> > if omitted," so I'm inclined to call this a good old fashioned bug.
> 
> I'd say it's a bug. Please open a bug, assign it to me (eric.smith), and
> I'll comment on it there.

There is an existing bug report (assigned to you :), with a partial patch:
http://bugs.python.org/issue12546

--David


More information about the Python-Dev mailing list