Linux系统和Windows系统下Python2代码转换为Python3代码工具使用指南

简介

本文主要介绍Linux系统和Windows系统下Python2代码转换为Python3代码工具2to3.py或2to3指令使用指南。

项目场景及问题描述

Python2的最后一个版本是2.7,在2020年彻底停止支持。有些环境不方便同时安装Python2和Python3,或者在使用Python3的环境下,不想再安装Python2,但是有的项目代码是基于Python2的,想要将其中Python2独有的代码部分转换为Python3可执行的代码,但工程量工作量较大,下面介绍Python3标准库自带的脚本 2to3.py 或指令 2to3 的使用方法。


Windows环境使用2to3.py

2to3.py 这个脚本通常会和Python解释器一起安装,位置在当前环境Python路径的Tools/scripts目录中。 (如:D:\Anaconda\anaconda3\Tools\scripts)
2to3.py文件位置
以 E:\workspace\pycharm\Vera 文件夹下有基于Python2写的代码VeraCode.py, Aaa.py, Bbb.py, Ccc.py为例。

1、将单个Python2代码转为Python3代码可用指令:

python 2to3.py E:\workspace\pycharm\Vera\VeraCode.py

指令执行后的VeraCode.py中Python2的语法将被修改为Python3的代码。

2、将单个Python2代码转为Python3代码并备份原代码可用指令:

python 2to3.py -w E:\workspace\pycharm\Vera\VeraCode.py

指令执行后,VeraCode.py中Python2的语法将被修改为Python3的代码,原代码备份为VeraCode.py.bak。
其中参数 -w 即备份原来代码,可从以下2to3.py的代码中看出,还有其他参数可自行查看

parser.add_option("-w", "--write", action="store_true",
                      help="Write back modified files")

3、将整个文件夹下所有Python2代码转为Python3代码并备份原代码可用指令:

python 2to3.py -w E:\workspace\pycharm\Vera

如果项目目录中Python文件很多,不需要备份,可以不使用参数 -w


Linux环境使用2to3指令

其实Linux环境中安装Python的目录下也有类似Windows系统的2to3.py脚本。位置在 /usr/lib/python3.10/lib2to3 文件夹,main.py函数。
但Linux环境可以直接使用 2to3 指令。

首先可以先用如下指令查看是否已经安装了 2to3

find /usr/local/ -name "2to3"

如果没有,可以用pip安装:

pip install 2to3

安装后,再查看是否安装好可以看到指令 find /usr/local/ -name "2to3" 的执行结果如下:

/usr/local/bin/2to3

接下来,使用方法类似Windows系统。
以 /app/models/Vera 文件夹下有基于Python2写的代码VeraCode.py, Aaa.py, Bbb.py, Ccc.py为例。
1、将单个Python2代码转为Python3代码可用指令:

2to3 /app/models/Vera/VeraCode.py

指令执行后的VeraCode.py中Python2的语法将被修改为Python3的代码。

2、将单个Python2代码转为Python3代码并备份原代码可用指令:

2to3 -w /app/models/Vera/VeraCode.py

指令执行后,VeraCode.py中Python2的语法将被修改为Python3的代码,原代码备份为VeraCode.py.bak。

3、将整个文件夹下所有Python2代码转为Python3代码并备份原代码可用指令:

2to3 -w /app/models/Vera

指令执行后可以看到代码被修改的部分。举个栗子:
代码转换举例


参考博客:

python2代码转换为python3
python2 转 python3 代码

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值