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应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python中正则表达式的详细教程
Apr 30 Python
全面了解python字符串和字典
Jul 07 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
python在非root权限下的安装方法
Jan 23 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
TensorFlow实现简单卷积神经网络
May 24 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
为什么python比较流行
Jun 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
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php 显示指定路径下的图片
2009/10/29 PHP
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
javascript各种复制代码收集
2008/09/20 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
AngularJS快速入门
2015/04/02 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
js实现简易拖拽的示例
2020/10/26 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
python转换摩斯密码示例
2014/02/16 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
使用python实现tcp自动重连
2017/07/02 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python类super()及私有属性原理解析
2020/06/15 Python
Python eval函数介绍及用法
2020/11/09 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
《最佳路径》教学反思
2014/04/13 职场文书
心得体会格式及范文
2016/01/25 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
MySQL数据库表约束讲解
2022/06/21 MySQL
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技