将python2代码升级为python3代码最佳实践
参考:https://docs.python.org/zh-cn/3/library/2to3.html
2to3是python自带的工具,能处理大部分diff,剩下的还需要手动处理的(我不知道如何自动处理):
- 【ERROR】str,unicode,bytes的问题;
- 【WARNING】如果py2代码的print已经带()了,那么这个工具还是会再套一层(());
如果机器上只有1个py3,那么直接用2to3命令即可;
如果机器上有多个py3,那么可以使用对应版本的2to3,比如2to3-3.6
可以先clone一个干净项目代码的master branch,并将其放在_py3目录:
git clone git@xxxxxx.git xxx_py3
cd xxx_py3
2to3-3.6 -w -n .
# 2to3-3.6, 由于机器上有多个py3版本,可以指定2to3的版本
# -w:直接在原始文件上进行修改
# -n:不需要对原始文件进行备份,即不会生成xxx.py.bak文件
# .:当前目录(包括子目录)下所有文件
上边这种方法基本上满足所有场景了,记住这个命令“2to3-3.6 -w -n . ”。如果有其他需求,比如不修改原文件,指定目录,增加后缀等可以去看参考链接。
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。