python2代码转python3代码

这里我要讲的是一个极其简单而又极其强大的工具——python自带的转换工具2to3.py
有多简单呢,请看看里面的内容
在这里插入图片描述
然后就没了。。。
但是他却真的解决了我的问题!
我们先来说怎么用,再来讲我的故事。
这个脚本在Python安装目录下Toolsscripts文件夹下,如果是利用anaconda3安装的python3,就在anaconda3/Tools/scripts中,如下图:
在这里插入图片描述
首先我们先要cd到该目录下

cd E:\Users\Administrator\Anaconda3\Tools\scripts

看我只不过是举个例子,具体你的2to3.py放在那里你要自己搜搜。
接下来输入

python 2to3.py -w 目标文件路径+文件名

若不输入文件名就会转化文件下的所有文件
然后就完成了!当然目前对于一些比较复杂的依赖这种方法还不能完全转换,还需要根据运行错误调整,不过已经可以节省很多的时间啦。
在这里插入图片描述
会反馈变更的部分,还会在原文件目录下备份文件,很贴心。


好了下面讲讲我的故事
背景是我在尝试构建一个图像识别模型,但是其中的一个环节却报错了。
在这里插入图片描述
报错TypeError: ‘range’ object does not support item assignment
于是我就去网上查报错原因:
当尝试使用range() 创建整数列表(导致“TypeError: ‘range’ object does not support item assignment”)有时你想要得到一个有序的整数列表,所以range() 看上去是生成此列表的不错方式。然而,你需要记住range() 返回的是“range object”,而不是实际的list 值。
这是问题的本质但对我而言这不是关键,另一个说法引起了我的重视
In Python 2, the range() returns a list which is not very efficient to handle large data
在python2中,range()返回一个列表,这个列表对于处理大数据不是很有效 ,因此在python3中range()返回的是“range object”
我重新查了一下代码的运行环境是python2,所以当时我就感觉解决的方法应该是2换3,于是就用到了2to3.py
在这里插入图片描述
切换完版本之后我再次运行我的指令,这次就成功了!
在这里插入图片描述
我成功的得到了我想要的结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值