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实现无证书加密解密实例
Oct 27 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
粗略分析Python中的内存泄漏
Apr 23 Python
python数据处理实战(必看篇)
Jun 11 Python
python3操作mysql数据库的方法
Jun 23 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
Python实现获取照片拍摄日期并重命名的方法
Sep 30 Python
Python爬虫抓取代理IP并检验可用性的实例
May 07 Python
Python编程学习之如何判断3个数的大小
Aug 07 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
python爬取抖音视频的实例分析
Jan 19 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
windows下安装python paramiko模块的代码
2013/02/10 Python
pyqt和pyside开发图形化界面
2014/01/22 Python
python字符串连接方式汇总
2014/08/21 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
美国存储和组织商店:The Container Store
2017/08/16 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
领导证婚人证婚词
2014/01/13 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
人力资源作业细则
2014/03/03 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书