一键将 Python2 代码自动转化为 Python3
问题
Python2 的代码直接在 Python3 环境运行的话会报错误:
如果大量的代码,无论是批量替换,还是逐行修改都够累的,这活儿表示不能干!
有没有办法一键转换呢?
百度了一下发现网上的方法如下:
可以利用 Python 内置工具 2to3.py, 帮你自动将 Python2 的代码转换为 Python3 的代码的。这个脚本的位置在 Python 安装的根目录\Python27\Tools\Scripts\2to3.py.
比如我手上有个 Python2.x 的 Python 脚本:D:\tmp\transform.py.
可以通过打开命令提示符,定位之该要转换的脚本目录下,然后运行
2to3.py -w transform.py
如果上述不加 -w 参数,则默认只是把转换过程所应对的 diff 内容打印输出到当前窗口而已。加了 -w 就是吧改动内容,写会到原先的文件了。
觉得麻烦的有木有?这绝对不是一个程序员想干的事!
于是想到了通过对.py文件右键添加一个命令进行自动处理:
将下边面的 reg 代码复制另存为“python 2to3.reg”文件,然后双击此文件,导入到注册表。
indows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\2to3\command] @="cmd /c C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32\\Tools\\scripts\\2to3.py -w \"%1\""
说明:
C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32\\Tools\\scripts\\2to3.py 此文件路径在 python 安装目录,保持跟本机一致!
然后右键.py文件,发现右键菜单多了个菜单:
点击运行,再看 .py 文件已经自动转换完成!
作者:JackieZhengChina
原文链接:http://t.cn/RdZZJjv
51Reboot 最新课程公告
第 19 期Python实战班正在火热招生中
第 8 期自动化运维班正在招生中
详情扫码咨询
一键将 Python2 代码自动转化为 Python3的更多相关文章
- 如何一键部署项目&&代码自动更新
my-deploy : 由nodejs写的一个自动更新工具,理论支持所有语言(php.java.c#)的项目,支持所有git仓库(bitbucket.github等). Github 效果如何? 如果 ...
- python2代码批量转为python3代码
由于python存在python2和python3两个主要的版本方向,经常会有将python2的代码转到python3的环境下运行的需求.尤其是跑一些神经网络的代码时有很多是在python2的环境下写 ...
- 将python2代码转为python3
将python2代码转为python3 1.2to3在anaconda的/bin文件夹下: 2.打印帮助信息 2to3 --help 3.使用2to3 -W [要转换的python2文件目录] 4.转 ...
- python 内置2to3工具将python2代码转换为python3代码
python2与python3代码不兼容,如果需要python2代码在python3环境下运行,需要将代码进行转换,本文介绍使用python3内置工具2to3.py对代码进行转换 一:2to3.py在 ...
- Linux系统中python默认版本为python2.7,修改为python3 项目上传码云
# 查询系统本系统中安装的python版本 ls -l /usr/bin/python* 1.在虚拟机上新建虚拟环境 # 系统中python默认版本为python2.,可以将其修改为python3 # ...
- vue-app项目,将px自动转化为rem
1. 安装lib-flexible: npm install --save lib-flexible 2.安装postcss-loader和postcss-px2rem: npm install -- ...
- 超简单集成华为HMS ML Kit文本识别SDK,一键实现账单号自动录入
前言 在之前的文章<超简单集成华为HMS Core MLKit通用卡证识别SDK,一键实现各种卡绑定>中我们给大家介绍了华为HMS ML Kit通用卡证识别技术是如何通过拍照自动识别卡 ...
- 解决 PhpStorm 对 用单例模式实例化PHP类时,代码自动提示功能失效 的问题
大部分PHP框架中,为了防止一个类被重复实例化,往往采用“单例模式”实例化类.我们的项目框架是这样做的: 先写好一个基类 /framework/Base.class.php,内容如下: <?ph ...
- 使用 SVN Hook 实现服务器端代码自动更新
之前的做法是客户端提交代码之后,再去服务器端项目中 svn up 一下来更新代码,让服务器端的项目更新到最新版本.可以编写一个 post-commit 钩子脚本来实现服务器端代码的自动更新,它在 SV ...
随机推荐
- IP地址分类和网段区分的知识
IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段 简单来说在公司或企业内部看到的就基本都是内网IP,ABC三类IP地址里的常见IP段. 每个IP地址都包含两部分,即网络号 ...
- hibernate连接mysql,查询条件中有中文时,查询结果没有记录,而数据库有符合条件的记录(解决方法)
今天在另一台服务器上重新部署了网站,结果出现了以下问题: ——用hibernate做mysql的数据库连接时,当查询条件中有中文的时候,查询结果没有记录,而数据库中是存在符合条件的记录的. 测试了以下 ...
- iptables简单规则记录
先来一句:好记性不如烂笔头! 1.iptables简介 iptables是基于包过滤的防火墙,它主要工作在osi模型的2,,4层,也可以工作在7层(iptables + squid) 2.原理 防火墙 ...
- 一、DAO设计模式 二、DAO设计模式的优化 三、JDBC中的事务,连接池的使用
一.DAO设计模式概述###<1>概念 DAO,Data Access Object ,用于访问数据库的对象. 位于业务逻辑和数据持久化层之间,实现对数据持久化层的访问 ...
- route命令使用
---恢复内容开始--- 利用route命令可以实现内外网同时访问 route 命令参数: route [-f] [-p] [Command [Destination] [mask Netmask] ...
- [Luogu P4143] 采集矿石 [2018HN省队集训D5T3] 望乡台platform
[Luogu P4143] 采集矿石 [2018HN省队集训D5T3] 望乡台platform 题意 给定一个小写字母构成的字符串, 每个字符有一个非负权值. 输出所有满足权值和等于这个子串在所有本质 ...
- Spring Boot Mybatis-Plus
Mybatis-Plus 是对 Mybatis-Plus 的一些扩充. 在 Spring Boot 中进行集成的时候其实基本上和 mybatis 是一致的. 在你的配置文件中.配置 你的 entity ...
- C语言不使用加号实现加法运算的几种方法
今天看到<编码:隐匿在计算机软硬件背后的语言>的第十二章:二进制加法器.讲述了全加器,半加器的原理以及如何实现加法.实现加法时所使用的全加器,半加器中包含的所有逻辑门在C语言中都有相应的运 ...
- virtualbox+vagrant学习-2(command cli)-6-vagrant init命令
Init——创建Vagrantfile文件 格式: vagrant init [options] [name [url]] 通过创建初始的Vagrantfile文件(如果不存在的话),将当前目录初始化 ...
- (转)MyEclipse快捷键大全
-------------------------------------MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 ...