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中的map、reduce和filter浅析
Apr 26 Python
Python中使用dom模块生成XML文件示例
Apr 05 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
Python之父谈Python的未来形式
Jul 01 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
对Python中9种生成新对象的方法总结
May 23 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
Python解析多帧dicom数据详解
Jan 13 Python
使用anaconda安装pytorch的实现步骤
Sep 03 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
基于mysql的论坛(4)
2006/10/09 PHP
php 301转向实现代码
2008/09/18 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
python实现合并两个数组的方法
2015/05/16 Python
Python常用知识点汇总
2016/05/08 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
环保专业大学生职业规划设计
2014/01/10 职场文书
年终考核评语
2014/01/19 职场文书
秋季运动会稿件
2014/01/30 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
文明班级申报材料
2014/12/24 职场文书
先进学校事迹材料
2014/12/30 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
会议通知
2015/04/15 职场文书
运动会通讯稿300字
2015/07/20 职场文书
2016中秋节问候语
2015/11/11 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP