Python2代码转换到Python3

最近发现好多的代码都是Python2写的现在满大街的Python3,真头秃。

找了一下解决的方案,发现是内置的函数可以干这个,再Python安装的Script这个文件夹下。

然后我发现Aaconda和普通的解释器这个文件的位置不一样。

C:\Anconda\Scripts

Anconda的位置

C:\Users\yunswj\AppData\Local\Programs\Python\Python36\Tools\scripts

普通解释器的位置

两个文件做比较

#!/usr/bin/env pythonimport sysfrom lib2to3.main import main
sys.exit(main("lib2to3.fixes"))

这就是里面的代码,看来是引了一个包

everything这个东西,我给1万分

我们直接导航到一个lib里面看

C:\Anconda\Lib\lib2to3

先看看,又不要钱

main函数的开头,导入了一些常见的包

然后第一个函数就是计算文本差异的函数

完整的列表树

各种要修复的语法差异,牛啊

在这段代码里面报错了

可以看到是knn这个算法里面的子函数的毛病

Pyhcarm更加的彻底

拆箱的tuple元组参数在python3中不得到支持”即此种参数形式在python3下废弃了。

Python 2 :lambda (x,y):x+y

Python 3 :lambda x_y : x_y[0]+x_y[1]

将(x,y)替换成 x_y , x 替换成 x_y[0] ,y 替换成 x_y[1]

https://www.python.org/dev/peps/pep-3113/

如果深挖发现是一个提议

可以看到在3.0的时候这个决议通过

以及为什么要废除

其实我也没有读懂

def fxn((a, (b, c))): pass

转换为:

def fxn(a_b_c): (a, (b, c)) = a_b_c pass

我也看不懂,还是搞个例子动手一下好啦~

上面说了,因为knn的语法毛病:

knn的毛病

导航到这里

2to3.exe .\knn.py

无参数的情况就是把要修改的地方打印出来

日志太长了,我就不放了

直接看这里的差异

转换前

转换后

这里还对文件备份

没有错了,就是输入的问题

-w -n效果是修改但不留备份文件
-f 给出明确的修复集
https://docs.python.org/3.0/library/2to3.html

最后的传送门

(0)

相关推荐

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!

    python安装第三方库方法 1.引言 2.pip手动安装 2.1 在线安装 2.1.1 默认安装 2.1.2 指定版本安装 2.2 离线安装 2.3 设置国内源 2.4 卸载与升级 2.4.1 卸载 ...

  • 关于Python虚拟环境搭建的解读

    大多数小伙伴在第一次接触Python的时候都会被它强大的包所吸引,想要写一个网站可以使用Django,想要做数学运算就想到了Numpy,想做数据分析可以用Pandas等等. 但是安装的包越多,Pyth ...

  • 学Python2好还是Python3好?小白必看!

    近期有人咨询小编:学Python用Python2好还是Python3好?Python3和Python2有什么区别呢?我们一起来看看吧. Python3和Python2区别还是挺大的. Python2和 ...

  • ubuntu16.04将python2改为python3并安装pip3最新版

    ubuntu16.04将python2改为python3并安装pip3最新版 一些常用的命令 step1:更改ubuntu16.04的默认python版本 step 2:安装pip3最新版 1.更换U ...

  • modernize-一个将Python2代码转换为Python3的库

    Modernize是一个Python程序,它读取Python 2源代码并应用一系列修复程序将其转换为对Python 3和Python 2.7均有效的源代码. _ _ _ __ ___ __| |___ ...

  • Python3和Python2有何区别?Python入门!

    Python是一门非常不错的编程语言,越来越多人都想要学习Python,不过在学习Python之前,很多人都疑惑Python有两个版本,分别是Python2和Python3,它们之间有什么区别?选择哪 ...

  • 说说你知道的Python3和Python2之间的区别?

    Python是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库的一门强类型的动态,可移植,可扩展,可嵌入的解释型编程语言 编码 Python2中字符的类型: str:已经编码后 ...

  • Python3和Python2之间的区别?

    学习Python最终的目的就是找到合适的工作,而说起找工作,肯定与面试题脱离不了关系,接下来,这篇文章为大家介绍一些Python爬虫面试题及答案,希望能给正要参加面试的你们带来帮助. Python3和 ...

  • Python2与Python3有哪些不同之处

    众所周知,Python3是Python2的升级改进版,既包含了Python2的绝大部分内容,同时又做出了一些不一样的改变.据说,Python2将于2020年左右不再免费更新维护,作为Python2的坚 ...

  • Python2与Python3到底有何区别?

    为了能够拥有更好的职业发展,不少人都会转行学习编程,而python语言在编程中是非常受欢迎的语言之一,其就业前景好.工资待遇高,深受大家的喜欢和追捧.当我们学习python前,很多人都会考虑版本选择问 ...

  • Python2/Python3通过writerow写入csv文件会有多余的空行 及 bytes和str互相转换

    Table of Contents 前言 Python2代码 Python2原来代码[有问题的] 现象 问题分析 Python2解决办法 Python2完整代码 Tips: 追加写入csv Pytho ...