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代码来解图片迷宫的方法整理
Apr 02 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
5分钟 Pipenv 上手指南
Dec 20 Python
利用python在excel里面直接使用sql函数的方法
Feb 08 Python
python抓取搜狗微信公众号文章
Apr 01 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
python已协程方式处理任务实现过程
Dec 27 Python
Python autoescape标签用法解析
Jan 17 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
php实现数据库的增删改查
2017/02/26 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
用javascript实现自定义标签
2007/05/08 Javascript
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
python持久性管理pickle模块详细介绍
2015/02/18 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
Python实现Restful API的例子
2019/08/31 Python
keras的三种模型实现与区别说明
2020/07/03 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
生产厂厂长岗位职责
2013/12/25 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
副厂长岗位职责
2014/02/02 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis