Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
作者:CodeMing 发布时间:2021-11-13 16:52:41
几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下。为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Script),这个脚本会将你的Python 2程序源文件作为输入,然后自动将其转换到Python 3的形式。
本文介绍一下在windows 10 环境下如何使用这个工具:
1)首先要先安装好python3,可到官网下载https://www.python.org/
2)使用Windows 命令提示符(cmd)打开2to3.py 脚本所在位置,如下图:
C:\Users\CodeMing>cd C:\Program Files\Python 3.5\Tools\scripts
3)紧接着运行 2to3.py 脚本
C:\Program Files\Python 3.5\Tools\scripts>python 2to3.py
可以看见在python 2to3.py 后面是需要参数的,我们输入--help 可以看到所需的参数信息。
4)2to3.py 脚本可以单独转换python2.x 代码 到python3,也可以按照目录批量的转换。下面分别举例说明一下:
A 按目录转换
假设我要转换的代码所在目录在:E:\ipv6-master
那么在CMD里面输入:
C:\Program Files\Python 3.5\Tools\scripts>python 2to3.py -w E:\ipv6--master\
B 按指定代码转换
C:\Program Files\Python 3.5\Tools\scripts>python 2to3.py -w E:\ipv6--master\IPV6.py
已知问题:
1)当要转换的代码在C盘的路径下,转换会出问题。显示:拒绝访问。可能是权限问题。
补充:python中2to3工具的使用
python3与python2的还是有诸多的不同,比如说在2中:
print "Hello,World!"
raw_input()
在3里面就成了:
print ("Hello,World!")
input()
所以如果用的python2开发的项目要迁移到3中,就需要进行代码的转换。Python3中自带了个转换工具,下面用个最简单的例子来说说2to3转换工具。
例子:(2to3Test.py 里面只有print这行代码)
# python 2.7.6
# 2to3Test.py
print "Hello,World!"
用python27显然是可以编译的:
D:\Python>python27 2to3Test.py
Hello,World!
用python33就编译不过了,因为3里print是函数,这样写就会有语法错误。
D:\Python>python33 2to3Test.py
File "2to3Test.py", line 1
print "Hello,World!"
^
SyntaxError: invalid syntax
下面用python3中自带的2to3工具进行转换:
D:\Python>python C:\Python33\Tools\Scripts\2to3.py -w 2to3Test.py
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored 2to3Test.py
--- 2to3Test.py (original)
+++ 2to3Test.py (refactored)
@@ -1 +1 @@
-print "Hello,World!"
+print("Hello,World!")
RefactoringTool: Files that were modified:
RefactoringTool: 2to3Test.py
最后用python33来进行编译,结果显示正确的。
D:\Python>python33 2to3Test.py
Hello,World!
来源:https://blog.csdn.net/u012211419/article/details/51136232


猜你喜欢
- 使用torchvision库的datasets类加载常用的数据集或自定义数据集图像识别是计算机视觉中的一个基础任务,它的目标是让计算机能够识
- 之前在网上看到有人提问,如何在页面上同步显示服务器的时间,其实实现方法有几种,可能 一般人立马就想到可以使用Ajax每隔一秒去请求服务器,然
- 本文实例讲述了Python 函数用法。分享给大家供大家参考,具体如下:demo.py(函数定义):# say_hello() # 不能在定义
- 早上一开Google Reader,发现已经全部被Silverlight 3的消息占领了,基本上都来自于Silverlight
- 将程序转换为exe文件我们先来介绍如何使用工具Pyinstaller安装Pyinstaller我们用pip安装Pyinstaller 。注意
- 本文介绍了vue生成随机验证码的示例代码,分享给大家,具体如下:样式自调,最终效果如图:实现效果:点击右边input框会自动切换,如果输入的
- 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句
- 在SQL查询分析器执行以下代码就可以了。01.declare @t varchar(255),@c varchar(255) 02.decl
- 前言使用的pyecharts是v1.0这里需要注意,pyecharts0.5的版本和v1.0以上的版本完全不一样,可以说是两个包该包能够方便
- 虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。以下是Golan
- #这是Python中的一个字典 dic = { 'str': 'this is a string',
- 本文实例讲述了Sanic框架蓝图用法。分享给大家供大家参考,具体如下:蓝图是可以用于应用程序内子路由的对象。蓝图并未向应用程序内添加路由,而
- 对一个列表list而言,进行排序是很简单的。正序排序(从小到大)用list.sort() 倒序排序(从大到小)用list.sort
- 很多小伙伴对于slice参数的概念理解停留在概念上,切片的参数有三个,分别是step 、start 、stop 。因为参数的值也是多变的,所
- PHP的header函数 可以很少代码就能实现HTML代码中META 标签这里只说用 header函数来做页面的跳转1. HTML代码中页面
- 前言人脸识别在LWF(Labeled Faces in the Wild)数据集上人脸识别率现在已经99.7%以上,这个识别率确实非常高了,
- tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好。tem
- 首先,必须安装vuex的依赖npm install vuex --save-dev创建专属vuex的文件夹和store.js:store.j
- 在调用后端接口时,由于后端接口的不规范统一,接口最外层在没有数据时返回的是空数组(其实更想要的是空json对象),而在有数据时返回的是jso
- 1前言我们本节来看看我们常说的索引下推。2什么是索引下推索引下推(Index Condition Pushdown,简称ICP),是MySQ