Python2的代码直接在Python3环境运行的话会报错误:

 

 

如果大量的代码,无论是批量替换,还是逐行修改都够累的,这活儿表示不能干!!!

有没有办法一键转换呢?

百度了一下发现网上的方法如下:

 

 

觉得麻烦的有木有?这绝对不是一个程序员想干的事!!

于是想到了通过对.py文件右键添加一个命令进行自动处理:

将下边面的reg代码复制另存为“python 2to3.reg”文件,然后双击此文件,导入到注册表。

Windows 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文件已经自动转换完成!!

 

如果想批量转换整个目录的多个python文件

如果有很多文件需要转换,一个个的右键转换还是觉得麻烦!这个问题我非常喜欢,非常符合”程序员精神“,哈哈,能简单的决不搞复杂,能省力就省力!

 

 

 

 

 也有朋友提问,这个功能只能在windows上实现,像

 Ubuntu等Linux操作系统怎么搞?

 

 

 

 

 好吧,既然是研究学习Python语言的,那咱们就用Python写个代码来搞定这些问题,直接上代码:

 

 

 

 

 

import os

 

 

# 定义一个处理方法

def Python2toPython3(dirname, p2to3FileName):

    if os.path.exists(dirname):

        for dirpath, dirnames, filenames in os.walk(dirname):

            for filename in filenames:

                if filename.endswith('.py'):

                    fileFullName = os.path.join(dirpath, filename)

                    print('Processing File:', fileFullName)

                    pycode2to3 = ("python " + p2to3FileName + " -w " +

                                  fileFullName)

                    print((os.popen(pycode2to3, 'r').read()))

 

 

# dirname 需要转换的文件目录

dirname = "C:/Users/Administrator/Desktop/test"

 

# p2to3FileName 本机Python安装目录下的2to3.py的路径,2to3.py是python自带的工具

p2to3FileName = ("C:/Users/Administrator/AppData/Local/Programs/" +

                 "Python/Python36-32/Tools/scripts/2to3.py")

 

Python2toPython3(dirname, p2to3FileName)

 

下图为测试运行截图:

 

代码很简单,就是遍历给定的目录,如果是".py"文件,就调用Python自己的2to3.py工具进行处理。

posted on 2022-08-11 08:38  root-123  阅读(203)  评论(0编辑  收藏  举报