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

  • 相关阅读:
    「BZOJ 1000」A+B Problem
    「HNOI 2008」越狱
    蓝桥杯 拼音字母
    蓝桥杯 抽签
    蓝桥杯 快速排序
    [蓝桥杯] 最大比例
    [蓝桥杯] 交换瓶子
    [蓝桥杯] 四平方和
    [蓝桥杯] 剪邮票
    [蓝桥杯] 方格填数
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/12581990.html
Copyright © 2011-2022 走看看