【自学Python】Python2代码转Python3代码

news2024/12/29 14:32:26

Python2代码转Python3代码

Python2代码转Python3代码教程

由于 Python 存在 Python2 和 Python3 两个主要的版本方向,经常会有将 Python2 的代码转到 Python3 的环境下运行的需求。

尤其是跑一些神经网络的代码时有很多是在 Python2 的环境下写的。在 Python3 下运行会遇见很多不兼容。

Python2代码转Python3代码

Python2 代码转 Python3 代码的一种方式是再安装一个 Python2,比如下载 anaconda 对应的 Python2 的版本,管理相关的库,运行的时候指定 Python2 运行。不过如果是运行依赖比较多的代码可能需要在 Python2 的环境安装许多包。

Python2 代码转 Python3 代码 的另一种方式是 Python3 自带的脚本 2to3.py,可以将 Python2 的程序自动转为 Python3 的形式,节省了很多修改细节的时间。

2to3.py使用

2to3.py脚本路径

在安装路径的 Tools\scripts 目录下,如下图所示:

请添加图片描述

2to3.py转换单个文件

这个文件实际是可以复制到电脑任何位置使用的,当然也可以就在这个位置利用 cmd 使用。首先,我们在 E 盘根目录,新建一个 haicoder.py 文件,如下图所示:

请添加图片描述

打开该文件,输入以下内容:

print 'HaiCoder(www.haicoder.net)'

打开 E: ,在地址栏输入 cmd,即可以在该目录打开命令行,如下图所示:

请添加图片描述

回车,在该目录打开命令行,如下图所示:

请添加图片描述

此时,我们输入以下命令:

python haicoder.py

这里我安装的是 Python3,运行的是 Python2 的代码,命令行提示错误,如下图所示(具体 Python3 安装,请参考 Python3 安装教程 ):

请添加图片描述

此时,我们在安装路径的 Tools\scripts 目录下,打开 cmd,如下图所示:

请添加图片描述

接着,我们在命令行输入以下命令,将 Python2 代码转成 Python3 :

python 2to3.py -w E:/haicoder.py

此时,命令行输出如下图所示:

请添加图片描述

同时,在 E 盘根目录生成了一个新的文件 haicoder.py.bak,如下图所示:

请添加图片描述

此时,我们打开文件 haicoder.py 发现,代码如下:

print('HaiCoder(www.haicoder.net)')

打开文件 haicoder.py.bak,代码如下:

print 'HaiCoder(www.haicoder.net)'

即文件 haicoder.py 是已经被转换成 Python3 的代码,文件 haicoder.py.bak 是原来的代码的备份。最后,我们再次在命令行输入以下命令,运行程序:

python haicoder.py

命令行输出,如下图所示:

请添加图片描述

运行成功,说明我们成功的使用 2to3.py 将 Python2 代码转成了 Python3 代码。

2to3.py转换多个文件

如果需要转换某个文件夹下的所有文件,例如 E 盘 test 文件夹下的所有文件,只需要在命令行里输入:

python 2to3.py -w E:/test/

Python2代码转Python3代码总结

Python2 代码转 Python3 代码使用的工具是 2to3.py ,2to3.py 文件的路径在安装路径的 Tools\scripts 目录下。

2to3.py 转换单个文件的语法为:

python 2to3.py -w E:/haicoder.py

2to3.py 转换多个文件的语法为:

python 2to3.py -w E:/test/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/135994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EXCEL的查找:如何按 行号+列号 进行查询

0 首先用match()等取得行号,列号 如果想根据行号列号,精确查找,另外一个区域的数据,可以用如下方法 INDIRECT("Sheet2!r"&MATCH($C11,Sheet2!$A:$A,0)&"C"&MATCH(D$10,Sheet2!$1:$1,0),FALSE) …

使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus)

vite官网 一:初始化项目 1.需要在创建项目的位置cmd目录下执行 2. npm init vitelatest 回车 npm init vitelatest3.填上自己的项目名称 回车 4.选择vue 回车 5.选择TypeScript回车 6.项目创建完成 或者一步到位通过附加的命令行选项直接指定项目名称和你想要使用的…

网络流量监控为某图书馆系统排忧解难(一)

前言 某学校图书馆信息中心老师反应,用户反馈系统有访问慢的情况,需要通过流量分析系统来了解图书馆系统的运行情况,此报告专门针对图书馆系统的性能数据做了分析。 信息中心已部署NetInside流量分析系统,使用流量分析系统提供实…

PB数据库开发技术(七)-PowerBuilder小型数据库应用系统开发

PowerBuilder小型数据库应用系统开发 实验目的 利用前面学过的知识设计一个“图书馆管理系统”,从而进一步掌握powerbuilder数据库开发的基本步骤和方法。 二.实验步骤 建立数据库“图书管理系统”,向数据库中添加操作员表、借书还书表、图书表以及相应数据

Unity 项目中怎样正确的使用 Lua?

(图源siki学院-狸墨老师) 什么是Lua Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。可以方便的与c/c进行相互调用。但…

Redis:二、Redis常见命令

2. Redis常见命令 2.1 Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样 Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( http://www.redis.cn/…

【JAVA进阶】常用API

📃个人主页:个人主页 🔥系列专栏:JAVASE基础 目录 1.API概述 2.Object类 3.Objects 4.StringBuilder 5.日期与时间 Date 类 SimpleDateFormat Calendar 6.JDK8新增日期类 1.API概述 什么是API? API(Application Program…

Kettle(二)数据同步、迁移(基础版)

目录 1.配置源数据库A 1.1 文件-->数据库连接 1.2 配置数据库,选择自己的数据库并配置。 1.3 数据库配置可能会报错,原因是缺少数据库驱动 2.配置目标数据库(与源数据库一致) 3.数据迁移(举例) 3.…

IntelliJ IDEA的代码搁置功能

使用场景 当遇到需要临时修改的 bug,但当前正在开发的内容不能删掉,这个时候就需要把当前已经开发的代码另外保存下来(即保存现场),当把 bug 改完后再恢复,来回归之前的开发工作,IntelliJ IDEA…

数据可视化系列-02各类图表的综合使用介绍及实践

文章目录3.各类图表的综合使用介绍及实践3.1了解数据功能图1、可视化中的数据2、基于数据的研究3、数据的可视化组件4、可视化图表的作用、制作流程和类型3.2北极星指标展示1、指标类知识回顾:指标类简介、指标类主要场景2、指标类图表:指标看板、指标趋…

Win11的两个实用技巧系列之更新进度条不动的三种解决方法、重置失败未做更改五种解决方法

目录 Win11更新进度条不动怎么办?Win11更新进度条不动的三种解决方法 方法一: 方法二: 方法三: Win11重置失败未做更改怎么办?Win11重置失败未做更改五种解决方法 方法一、重新启用Windows RE 方法二、使用SFC修复系统文件 方法三、从恢复…

java忽略证书验证(兼容http,https)

概述 日常上传、下载文件时可能有不需要验证证书的场景,比如证书过期、不正确之类的也可以正常的上传下载文件。 Java中使用https协议时,是通过X.509证书进行校验的。 首先我们先了解下什么是X.509证书。 什么是X.509证书 X.509是公钥基础设施&#x…

k8s部署prometheus

k8s部署prometheus 1.下载prometheus文件 cd /soft/src git clone -b release-0.5 --single-branch https://github.com/coreos/kube-prometheus.git2.部署 这里部署之前最好改一下alertmanager-alertmanager.yaml这个文件,将replicas:改成2或者3,当为…

Spark 3.0 - 17 ML PCA 主成分分析理论与实战

目录 一.引言 二.PCA 理论 1.主成分分析定义 2.数学基础 A.数据归一化 B.协方差矩阵计算 C.计算协方差矩阵的特征向量和特征值,以识别主成分 D.构造特征向量矩阵 E.沿着主成分轴重新计算数据 三.PCA 实战 1.数据准备 2.PCA 初始化 3.数据降维 四.总结 …

举一反三-自建zabbix监控php

php-fpm监控需要通过nginx服务。因此需要开启相关配置。 php-fpm如果是yum安装的,那么在/etc/php-fpm.d/www.config中编辑如下选项: pm.status_path /php_status 保存并退出编辑。重启php-fpm服务。 接下来编辑nginx配置项。编辑如下: l…

Linux下cal命令C/C++实现(显示日历信息)

大多数用户自然会将计算机上的日历视为GUI应用程序,或直接从桌面显示的东西。但也可以在Linux中使用cal命令通过命令行终端查看日历。 如果您通常使用Linux上的桌面环境,或者您来自Windows或MacOS操作系统,可能会认为这是一种过于复杂的日历…

RFID技术在固定资产管理中的作用

固定资产因具有数量庞大、分布广、变动频繁等特点造成管理难度较大,一直成为企业管理的一大重点。固定资产管理包括资产的新增、调拨、闲置、报废、维修、盘点等操作,让投入使用到报废退出使用的全过程进行全面的信息化管控。以往固定资产的一直由于管理…

AlexNet详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 ✨完整代码在我的github上,有需要的朋友可以康康✨ GitHub - tt-s-t/Deep-Learning: Store some of your own in-depth …

Python学习笔记——起步

Python 2 和 Python 3的区别 一、维护及版本更新不同 官方通知python2 2020开始已不再维护,python3的版本还在不断迭代更新 。 因为python2官方不再维护且python3的广泛使用,很多新的算法包、AI包等其他功能模块包都是基于python3开发的,p…

LaTeX使用方法

1.工具 1.生成表格:LaTeX Tables Editor 2.生成公式:Online LaTeX Equation Editor 、texmath demo、在线LaTeX公式编辑器-编辑器 2.技巧 1.插入图片: \begin{figure}[t] %t表示图片置顶,h表示指定位置,b表示置底…