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 相关文章推荐
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
python实现获取Ip归属地等信息
Aug 27 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
详解python的argpare和click模块小结
Mar 31 Python
python爬虫的一个常见简单js反爬详解
Jul 09 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
Python 实现将数组/矩阵转换成Image类
Jan 09 Python
详解Python中的路径问题
Sep 02 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
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
加拿大探亲邀请信
2014/01/28 职场文书
大学军训感言200字
2014/02/26 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
保送生自荐信范文
2015/03/26 职场文书
开场白怎么写
2015/06/01 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis