2to3

自动将 Python 2 代码转换成 Python 3. 自 3.11 起,该模块已被弃用,并自 3.13 起被移除。 参考请见:https://github.com/python/cpython/blob/8d42e2d915c3096e7eac1c649751d1da567bb7c3/Doc/whatsnew/3.13.rst?plain=1#L188. 更多信息:https://manned.org/2to3.

  • 显示将执行的变动但不执行(dry-run):

2to3 路径/到/文件.py

  • 将 Python 2 文件转化为 Python 3:

2to3 --write 路径/到/文件.py

  • 将 Python 2 语言特性转化为 Python 3:

2to3 --write 路径/到/文件.py --fix raw_input --fix print

  • 除了某个语言特性外将所有其他的 Python 2 语言特性转化为 Python 3:

2to3 --write 路径/到/文件.py --nofix has_key --nofix isinstance

  • 列出 Python 2 所有可转化为 Python 3 的语言特性:

2to3 --list-fixes

  • 将某一文件夹的所有 Python 2 文件转化为 Python 3:

2to3 --output-dir 路径/到/Python 3 目录 --write-unchanged-files --nobackups 路径/到/Python 2 目录

  • 使用多线程运行 2to3:

2to3 --processes 4 --output-dir 路径/到/Python 3 目录 --write --nobackups --no-diff 路径/到/Python 2 目录