Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作

 更新时间:2021年03月03日 16:24:27   作者:CodeMing  
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下。为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Script),这个脚本会将你的Python 2程序源文件作为输入,然后自动将其转换到Python 3的形式。

本文介绍一下在windows 10 环境下如何使用这个工具:

1)首先要先安装好python3,可到官网下载https://www.python.org/

2)使用Windows 命令提示符(cmd)打开2to3.py 脚本所在位置,如下图:

C:\Users\CodeMing>cd C:\Program Files\Python 3.5\Tools\scripts

3)紧接着运行 2to3.py 脚本

C:\Program Files\Python 3.5\Tools\scripts>python 2to3.py

可以看见在python 2to3.py 后面是需要参数的,我们输入--help 可以看到所需的参数信息。

4)2to3.py 脚本可以单独转换python2.x 代码 到python3,也可以按照目录批量的转换。下面分别举例说明一下:

A 按目录转换

假设我要转换的代码所在目录在:E:\ipv6-master

那么在CMD里面输入:

C:\Program Files\Python 3.5\Tools\scripts>python 2to3.py -w E:\ipv6--master\

B 按指定代码转换

C:\Program Files\Python 3.5\Tools\scripts>python 2to3.py -w E:\ipv6--master\IPV6.py

已知问题:

1)当要转换的代码在C盘的路径下,转换会出问题。显示:拒绝访问。可能是权限问题。

补充:python中2to3工具的使用

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Linux环境下安装python3

    Linux环境下安装python3

    这篇文章介绍了Linux环境下安装python3的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • django用户登录和注销的实现方法

    django用户登录和注销的实现方法

    这篇文章主要介绍了django用户登录和注销的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Python中通过property设置类属性的访问

    Python中通过property设置类属性的访问

    为了达到类似C++类的封装性能,可以使用property来设置Python类属性的访问权限,本文就介绍一下Python中通过property设置类属性的访问,感兴趣的可以了解一下,感兴趣的可以了解一下
    2023-09-09
  • Python天气预报采集器实现代码(网页爬虫)

    Python天气预报采集器实现代码(网页爬虫)

    这个天气预报采集是从中国天气网提取广东省内主要城市的天气并回显。本来是打算采集腾讯天气的,但是貌似它的数据是用js写上去还是什么的,得到的html文本中不包含数据,所以就算了
    2012-10-10
  • 使用python构建一个自己的聊天室

    使用python构建一个自己的聊天室

    这篇文章主要介绍了使用python构建一个自己的聊天室,有助于帮助小伙伴们理解掌握Python的socket编程,需要的朋友可以参考下
    2023-04-04
  • 如何通过Python3和ssl实现加密通信功能

    如何通过Python3和ssl实现加密通信功能

    这篇文章主要介绍了如何通过Python3和ssl实现加密通信功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python制作数据导入导出工具

    Python制作数据导入导出工具

    正好最近在学习python,于是打算用python实现了数据导入导出工具,由于是新手,所以写的有些不完善的地方还请见谅
    2015-07-07
  • mac系统装python后pip命令不能用的解决方案

    mac系统装python后pip命令不能用的解决方案

    这篇文章主要介绍了mac系统装python后pip命令不能用的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Pytorch搭建yolo3目标检测平台实现源码

    Pytorch搭建yolo3目标检测平台实现源码

    这篇文章主要为大家介绍了Pytorch搭建yolo3目标检测平台实现源码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 详解Pytorch中Dataset的使用

    详解Pytorch中Dataset的使用

    这篇文章主要为大家详细介绍了如何加载并处理TorchVision的FashionMNIST Dataset,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12

最新评论