Python2to3内置工具的使用

Python2to3内置工具的使用

前言:由于Python2在2020年1月1日起将停止更新,因此开发人员不得不考虑将代码从Python2移植到Python3。但是由于Python2和Python3的差异(具体可查看Python3与Python2:https://blog.csdn.net/qq_28757391/article/details/104265683),人工转换代码的工作量是十分巨大的。庆幸的是Python的开发人员已经为我们提供了内置的代码转换工具:2to3

下面是该工具的使用介绍。

目录

Python2to3内置工具的使用

一、前提

二、2to3工具使用

三、注意事项


一、前提

下载并安装好Python2.7,下载地址:

https://www.python.org/downloads/release/python-2717/

下载后得到python-2.7.17.amd64.msi安装包,打开安装包,根据安装向导进行安装(安装包不要存放在桌面)。

安装过程中若出现错误码为2503或2502的错误,则按以下步骤解决:

(1)按Win+X选择“命令提示符(管理员)”,或者右击命令提示符选择以管理员身份运行;

(2)记住安装包的保存路径,尽量不要放桌面,因为路径会很长,因此建议可以直接保存到根目录下,比如"D:\",那么路径就是D:\ python-2.7.17.amd64.msi;

(3)返回命令提示符,输入

msiexec /package "D:\python-2.7.17.amd64.msi"        #具体的路径根据实际情况填写

按回车键执行即可安装。

安装完成后设置环境变量。打开命令行,输入python,出现如下信息,则表明安装成功。

二、2to3工具使用

1、根据Python2.7安装目录,找到  2to3.py文件 ,一般为在C:\Python27\Tools\Scripts目录下:

2、在C:\Python27\Tools\Scripts目录下,按下Shift+鼠标右键,选择“在此处打开命令窗口“,打开命令窗口。

1、在命令窗口输入命令将进行转换

(1)单个py文件转换:

python  2to3.py  D:\test.py        #D:\test.py为转换的文件的具体路径

命令执行之后,会打印修改前和修改后的代码:

这里可以看到修改后的代码多了  as  关键字。查看D:\test.py文件,可以看到该文件并没有被修改。

若想要在转换的同时直接修改该文件该怎么办呢?

(2)转换的同时覆盖文件(同时会留有.bak的备份文件):

python  2to3.py  -w   D:\test.py 

(3)转换的同时覆盖文件但不备份:

python  2to3.py  -w  -n    D:\test.py

(4)批量转换:

python  2to3.py  D:\

(5)指定修复程序进行转换:

python 2to3.py  -f  has_key D:\test.py   #has_key为指定修复程序

(6)禁用指定的修复程序进行转换:

python 2to3.py  -x  has_key D:\test.py   #has_key为指定修复程序

三、注意事项

有时候2to3会在您的源代码中找到需要更改的地方,但2to3无法自动修复。在这种情况下,2to3会在文件的diff下面打印警告。

2to3也可以重构doctests。要启用此模式,请使用-d 标志。请注意,只有 doctests才会被重构。这也不要求模块是有效的Python。例如,rest文档中的doctest示例也可以使用此选项进行重构。

-v选项可以对翻译过程的详细信息输出。

当-p通过时,2to3将print视为函数而不是语句。从 __future__ import print_function使用时,这很有用。如果未给出此选项,则打印修复程序将在一组额外的括号中包围打印调用,因为它无法区分带括号的print语句(例如print (“a” + “b” + “c”))和a真正的函数调用。

更多修复程序用法请查看文档:

https://docs.python.org/3.4/library/2to3.html#fixers

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值