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编写简单的画图板程序的示例教程
Dec 08 Python
简单总结Python中序列与字典的相同和不同之处
Jan 19 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
python实现rsa加密实例详解
Jul 19 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
python3 判断列表是一个空列表的方法
May 04 Python
Python 文本文件内容批量抽取实例
Dec 10 Python
PyQt5实现简单数据标注工具
Mar 18 Python
Django框架模板的使用方法示例
May 25 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
深入分析python 排序
Aug 24 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 文件状态缓存带来的问题
2008/12/14 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
商务英语应届生自我鉴定
2013/12/08 职场文书
开办饭店创业计划书
2013/12/28 职场文书
酒店出纳岗位职责
2013/12/29 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
社区安全温馨提示语
2015/07/14 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang