python 2 to 3 conversion

Igor Korot ikorot01 at gmail.com
Mon Jun 17 10:16:39 EDT 2019


Hi, Chris et al,

On Mon, Jun 17, 2019 at 8:00 AM Chris Angelico <rosuav at gmail.com> wrote:
>
> On Mon, Jun 17, 2019 at 10:50 PM Thomas Jollans <tjol at tjol.eu> wrote:
> >
> > On 17/06/2019 15.14, Igor Korot wrote:
> > > Hi,
> > > Is there a place where there is a full list of incompatibilities between
> > > python 2 and python 3 is available and how to fix them?
> >
> > ‘What’s new in Python 3.0’ is a good starting point
> >
> > https://docs.python.org/3/whatsnew/3.0.html
> >
> > It doesn’t list all standard library changes, but it has the most
> > important ones. Obviously it can't include anything that third-party
> > modules do.
> >
> > The main incompatibility is obviously strings, and there various modules
> > have adopted different strategies for the transition.
>
> Unfortunately starting there means ignoring all the compatibilities
> that were implemented in more recent versions. Notably, Python 3.3
> introduced u"..." literals, and 3.5 allows you to use percent
> interpolation with bytes as well as text. So those kinds of
> differences are no longer significant.
>
> ChrisA

This is what I have in my script (reproduction steps):

igor at IgorReinCloud ~/dbhandler/libdbwindow/res/gui $ python
Python 3.6.5 (default, Oct  5 2018, 14:32:41)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import array
>>> bytes = array.array('B', open("bold.png", "rb").read())
>>> bytes[0:16].tostring()
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR'
>>> if bytes[0:16].tostring() != '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR':
...     print("Failed")
...
Failed
>>>

Do I just need to add "b" in front of the string to make it work with both?
Or I need to check version call?

Thank you.

> --
> https://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list