Python2代码迁移至Python3

前言

Python3版本对于Python2有很多的改动,其中一个“影响比较大”的改动是print的语法,这导致几乎全部Python2的代码无法直接在Python3上面跑。

这里影响比较大加了个引号是因为print其实并没有本质改动,但是由于绝大部分Python代码都会用到所以涉及面较广

print: Python2 vs. Python3

在Python2里,print的用法如下:

1
print "Hello world!"

而在Python3里,print的语法则变成了:

1
print("Hello world!")

更多关于Python3对于Python2更新的详细介绍,参见官网文档What’s New In Python 3.0

Python 2to3

为了解决这个头疼的问题,Python3自带了一个脚本2to3.py,文件路径为%Python_DIR%/Tools/Scripts/2to3.py

这个脚本用法也很简单,指定要转换的文件即可:

1
python C:\Python33\Tools\Scripts\2to3.py -w tesshelper.py

执行完成之后,原来的代码就会被备份为tesshelper.py.bak, 而tesshelper.py则为转换之后的代码。

需要注意的是,这个脚本并不总是能完美地进行转换,对于复杂的代码可能会出现问题。不过对于print的转换来说,基本不会存在什么问题。

转换完成之后,就能用Python3运行程序啦!