[Python-Dev] Python3 "complexity"

Terry Reedy tjreedy at udel.edu
Fri Jan 10 03:27:35 CET 2014


On 1/9/2014 6:25 PM, Chris Barker wrote:

> as so --  I want to replace a bit of ascii text surrounded by arbitrary
> binary:
> (apologies for the py2...)
> In [24]: b
> Out[24]: '\x01\x00\xd1\x80\xd1a name\xd0\x80'
> In [25]: u = b.decode('latin-1')
> In [26]: u2 = u.replace('a name', 'a different name')
> In [28]: b2 = u2.encode('latin-1')
> In [29]: b2
> Out[29]: '\x01\x00\xd1\x80\xd1a different name\xd0\x80'

Just to check, with 3.4
print(b'\x01\x00\xd1\x80\xd1a name\xd0\x80'
       .decode('latin-1').
       replace('a name', 'a different name')
      .encode('latin-1')
       == b'\x01\x00\xd1\x80\xd1a different name\xd0\x80')
 >>>
True

The b prefix works in 2.6/7, so this code does the same thing in 2.6+ 
and 3.x.

-- 
Terry Jan Reedy



More information about the Python-Dev mailing list