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 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
Python中的super用法详解
May 28 Python
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
python队列Queue的详解
May 10 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
python实现宿舍管理系统
Nov 22 Python
python实现实时视频流播放代码实例
Jan 11 Python
在Python 的线程中运行协程的方法
Feb 24 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
Python Django ORM连表正反操作技巧
Jun 13 Python
python 常用的异步框架汇总整理
Jun 18 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
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
Angular.js基础学习之初始化
2017/03/10 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
python自动安装pip
2014/04/24 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
PHP面试题大全
2015/10/16 面试题
Solaris操作系统的线程机制
2012/12/23 面试题
企业节能减排实施方案
2014/03/19 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
文明班级申报材料
2014/12/24 职场文书
2015年护士节慰问信
2015/03/23 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
python编程项目中线上问题排查与解决
2021/11/01 Python