Python2转Python3

经常会遇到一些python2的代码,但是需要python3 来执行,官方提供了一个便捷的方式,在我们的python安装目录下,
{Python_HOME}\Tools\scripts里面。运行 2to3.py 脚本,打印如下:

python 2to3.py --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

现在我的python2脚本在D:\code目录下有个hello2.py文件,代码如下:

print ‘hello’

我想把上面的代码改成python3版本的。、
应该先cmd进入{Python_HOME}\Tools\scripts目录,然后执行如下:

python 2to3.py -w D:\code\hello2.py

执行整个流程如下:

D:\Anaconda3\Tools\scripts>python 2to3.py -w D:\code\hello2.py
RefactoringTool: Skipping optional fixer: buffer
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: set_literal
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored D:\code\hello2.py
--- D:\code\hello2.py (original)
+++ D:\code\hello2.py  (refactored)
@@ -1 +1 @@
-print 'hello'
+print('hello')
RefactoringTool: Files that were modified:
RefactoringTool: D:\code\hello2.py

然后我们可以看到,在D:\code目录下多了一个hello2.py.bak文件,这是原来的hello2.py文件备份。
查看hello2.py,内容已被修改为:

print(‘hello’)

猜你喜欢

转载自blog.csdn.net/weixin_40420525/article/details/84343891