python3 2to3 模块

一、前言

因为种种原因,官方将在2020年1月1日停止发展python2相关模块,这就意味着所有使用Python2编写的项目都将接收不到官方的免费支持,更让人难受的是,Python3的一些细节比如包的导入,模块名等等都与Python不相同,由此而带来的最大的一个影响就是Python2向Python3的移植。为了解决这个问题,官方在我们安装Python3的同时,为提供一个2to3这个可执行文件。

二、2to3的位置

在Windows平台上,2to3这个可执行文件一般在\Python\Python36-32\Tools\scripts目录下。
在linux平台上,2to3这个可执行文件一般在/usr/local/python3/bin这个目录下。具体情况以Python3实际安装路径为准。

三、2to3的使用

        在执行前,我们先进入2to3文件所在的父级目录下,然后运行python 2to3 --help或者python3 2to3 --help查看参数

# python3 2to3 --help
Usage: 2to3 [options] file|dir ...

Options:
  -h, --help            show this help message and exit
  -d, --doctests_only   Fix up doctests only
  -f FIX, --fix=FIX     Each FIX specifies a transformation; default: all
  -j PROCESSES, --processes=PROCESSES
                        Run 2to3 concurrently
  -x NOFIX, --nofix=NOFIX
                        Prevent a transformation from being run
  -l, --list-fixes      List available transformations
  -p, --print-function  Modify the grammar so that print() is a function
  -v, --verbose         More verbose logging
  --no-diffs            Don't show diffs of the refactoring
  -w, --write           Write back modified files
  -n, --nobackups       Don't write backups for modified files
  -o OUTPUT_DIR, --output-dir=OUTPUT_DIR
                        Put output files in this directory instead of
                        overwriting the input files.  Requires -n.
  -W, --write-unchanged-files
                        Also write files even if no changes were required
                        (useful with --output-dir); implies -w.
  --add-suffix=ADD_SUFFIX
                        Append this string to all output filenames. Requires
                        -n if non-empty.  ex: --add-suffix='3' will generate
                        .py3 files.

四、常用方法

参数不算太多,既可以转换单个文件,也可以转换某个文件夹下的所有文件。
使用的格式是 python 2to3 [options]  ,以下是我用到的一些用法:

1、不加参数:仅仅打印出各个文件转换时需要修改的地方,但是不做修改

2、参数 -w :  启用回写修改。仅针对需要修改的文件,先对原文件进行备份,备份文件后缀为.bak。然后对原文件进行修改并写回原文件。注释和确切的缩进在整个翻译过程中都会保留下来。

3、参数 -l:以列表的形式打印出所有可用的修复程序。

4、参数 -f:指定一组要运行显式修复程序,默认是运行所有修复程序。

5、参数 -x:显式地禁用一些修复程序。

6、参数 -n:不为修改后的文档进行备份,与-w参数一起使用的时候会发现没有为修改的文档生成.bak文件

7、参数 -o:将输出文件放在这个目录中,而不是覆盖输入文件。需要与-n参数组合使用。

五、参考文档:

https://www.cnblogs.com/wushuaishuai/p/7611915.html

https://docs.python.org/3.0/library/2to3.html

 

你可能感兴趣的:(python)