將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 . ”。如果有其他需求,比如不修改原文件,指定目錄,增加后綴等可以去看參考鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM