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 相关文章推荐
修复 Django migration 时遇到的问题解决
Jun 14 Python
Python交互环境下实现输入代码
Jun 22 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
pycharm重命名文件的方法步骤
Jul 29 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
为什么是 Python -m
Jun 19 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 Python
浅谈anaconda python 版本对应关系
Oct 07 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
Python中的xlrd模块使用整理
Jun 15 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防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
php生成图片验证码的方法
2016/04/15 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
python基础教程之循环介绍
2014/08/29 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
python简易远程控制单线程版
2018/06/20 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
Python类中self参数用法详解
2020/02/13 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
教师演讲稿大全
2014/05/16 职场文书
双拥工作宣传标语
2014/06/26 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
融资合作协议书范本
2014/10/17 职场文书
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript