zoukankan      html  css  js  c++  java
  • 将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 . ”。如果有其他需求,比如不修改原文件,指定目录,增加后缀等可以去看参考链接。

  • 相关阅读:
    【LeetCode-位运算】汉明距离总和
    python类的继承和重写
    单元测试unittest使用说明
    Java学习90
    Java学习89
    Java学习88
    Java学习87
    Java学习86
    Java学习85
    Java学习84
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/12581990.html
Copyright © 2011-2022 走看看