您的位置:首页 > 编程语言 > Python开发

Python2到Python3代码的转换工具2to3.py

2018-02-27 11:22 190 查看
之前一直遇到Python2代码转到Python3代码的需求,最近才知道Python官方就有一个转换工具:2to3.py。 
无论是Python官网下载安装的python还是利用Anaconda安装,目录都在{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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
假设我在E:\pycode目录下有个py2.py文件,代码如下:
print 'test'
1
我想把上面的代码改成python3版本的。、 
应该先cmd进入{Python_HOME}\Tools\scripts目录,然后执行如下:
python 2to3.py -w E:\pycode\py2.py
1
执行整个流程如下:
D:\Anaconda3\Tools\scripts>python 2to3.py -w E:\pycode\py2.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 E:\pycode\py2.py
--- E:\pycode\py2.py    (original)
+++ E:\pycode\py2.py    (refactored)
@@ -1 +1 @@
-print 'test'
+print('test')
RefactoringTool: Files that were modified:
RefactoringTool: E:\pycode\py2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
然后我们可以看到,在E:\pycode目录下多了一个py2.py.bak文件,这是原来的py2.py文件备份。 
查看py2.py,内容已被修改为:
print('test')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: