Python3中的2to3转换工具使用示例


Posted in Python onJune 12, 2015

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! 

总结:
1. 目录. C:\Python33\Tools\Scripts\2to3.py.  其实在python2.6,2.7中都存在这个工具。
2. 如果不加-w参数,则默认只是把转换过程所对应的diff内容打印输出到当前窗口而已。
3. 加了-w,就是把改动内容,写回到原先的文件了。
4. 不想要生成bak文件,再加上-n即可。  bak最好还是有。

Python 相关文章推荐
python基础教程之匿名函数lambda
Jan 17 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
May 21 Python
python处理数据,存进hive表的方法
Jul 04 Python
python得到qq句柄,并显示在前台的方法
Oct 14 Python
详解python算法之冒泡排序
Mar 05 Python
python dlib人脸识别代码实例
Apr 04 Python
python判断正负数方式
Jun 03 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
python 窃取摄像头照片的实现示例
Jan 08 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
安装pytorch时报sslerror错误的解决方案
May 17 Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 #Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 #Python
Python 3.x 新特性及10大变化
Jun 12 #Python
Python实现比较两个列表(list)范围
Jun 12 #Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 #Python
Python语言实现机器学习的K-近邻算法
Jun 11 #Python
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 #Python
You might like
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
python绘制双柱形图代码实例
2017/12/14 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
高一学生评语大全
2014/04/25 职场文书
七一讲话心得体会
2014/09/05 职场文书
课外活动实习计划
2015/01/19 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
孔子观后感
2015/06/08 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
python​格式化字符串
2022/04/20 Python