Python3中的2to3转换工具使用示例
admin
2023-07-31 02:27:41
0

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最好还是有。

相关内容

Python3 进行 IP...
import requestsip_address = input...
2024-01-06 00:30:49
如何在Debian 10上...
Python是世界上使用最广泛的编程语言之一。凭借其简单易学的语法...
2023-08-03 05:49:19
如何在 CentOS 8 ...
ython 是世界上最广泛使用的编程语言之一。Python 的语法...
2023-08-03 05:41:46
为编写网络爬虫程序安装Py...
1. 下载Python3.5.1安装包 1.1 进入python官...
2023-08-02 22:28:23
Python3+Selen...
全文简介 最早使用Selenium还是几年前写GUI自动化用例的时...
2023-08-02 22:23:46
基于python3.5+的...
简介 sanic是一款用python3.5+写的web frame...
2023-08-02 22:23:43

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 常见... 什么是 Apache Doris Apache Doris 是一款 MPP 架构的 OLAP 列式存...
Vmware简易安装ubunt... 大晚上的折腾死我了VMware安装ubuntu,用简易安装结果设置的用户名密码死活进不去再重装一次,...
‘WebDriver‘ obj... selenium库报错"‘WebDriver’ object has no attribute ‘f...
WiFi中继器和WiFi扩展器... WiFi中继器以无线方式连接到 WiFi 网络并重新广播信号。它就像一个中继系统,连接到我们的 Wi...
mysql插入数据到数据库时失... 插入数据到数据库时失败:Timeout in IO operation 查看mysql日志 显示是磁...