Python Language
2to3ツール
サーチ…
構文
- $ 2to3 [-options] path / to / file.py
パラメーター
| パラメータ | 説明 |
|---|---|
| ファイル名/ディレクトリ名 | 2to3は、引数として変換されるファイルまたはディレクトリのリストを受け入れます。ディレクトリは、Pythonソースのために再帰的にトラバースされます。 |
| オプション | オプションの説明 |
| -f FIX、--fix = FIX | 適用する変換を指定します。デフォルト:all。 --list-fixes利用可能な変換をリスト--list-fixes |
| -j PROCESSES、--processes = PROCESSES | 2to3を同時に実行 |
| -x NOFIX、--nofix = NOFIX | トランスフォーメーションを除外する |
| -l、--list-fixes | 利用可能な変換のリスト |
| -p、--print-function | print()が関数と見なされるように文法を変更する |
| -v、--verbose | より詳細な出力 |
| --no-diffs | リファクタリングの差分を出力しない |
| -w | 変更されたファイルを書き戻す |
| -n、--nobackups | 変更されたファイルのバックアップを作成しない |
| -o OUTPUT_DIR、--output-dir = OUTPUT_DIR | 入力ファイルを上書きするのではなく、このディレクトリに出力ファイルを置きます。入力ファイルが変更されていない場合、バックアップ・ファイルは不要なので、 -nフラグが必要です。 |
| -W、 - 書き換えなしのファイル | 出力ファイルを書き込む場合でも、変更は必要ありません。 -oと一緒に-oと、完全なソースツリーが翻訳され、コピーされます。インプラント-w |
| --add-suffix = ADD_SUFFIX | すべての出力ファイル名に追加する文字列を指定します。空でない場合は-nが必要です。例: --add-suffix='3' .py3 --add-suffix='3'は.py3ファイルを生成します。 |
備考
2to3ツールは、Python 2.xで書かれたコードをPython 3.xコードに変換するために使用されるPythonプログラムです。このツールはPython 2.xソースコードを読み込み、一連の修正プログラムを適用して有効なPython 3.xコードに変換します。
2to3ツールは、ほとんどすべてのコードを扱う豊富なフィラーを含むlib2to3として標準ライブラリで利用できます。 lib2to3は汎用ライブラリなので、2to3用の独自のフィラーを書くことができます。
基本的な使用法
次のPython2.xコードを考えてみましょう。ファイルをexample.pyとして保存しexample.py
Python 2.x 2.0
def greet(name):
print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)
上記のファイルには、いくつかの互換性のない行があります。 raw_input()メソッドはPython 3.xではinput()に置き換えられ、 printはもはや文ではなく関数です。このコードは、2to3ツールを使用してPython 3.xコードに変換できます。
Unix
$ 2to3 example.py
Windows
> path/to/2to3.py example.py
上記のコードを実行すると、次のように元のソースファイルとの差分が出力されます。
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored example.py
--- example.py (original)
+++ example.py (refactored)
@@ -1,5 +1,5 @@
def greet(name):
- print "Hello, {0}!".format(name)
-print "What's your name?"
-name = raw_input()
+ print("Hello, {0}!".format(name))
+print("What's your name?")
+name = input()
greet(name)
RefactoringTool: Files that need to be modified:
RefactoringTool: example.py
変更は、-wフラグを使用してソース・ファイルに書き戻すことができます。 -nフラグが指定されていない限り、元のファイルexample.py.bakバックアップが作成されexample.py.bak 。
Unix
$ 2to3 -w example.py
Windows
> path/to/2to3.py -w example.py
これで、 example.pyファイルがPython 2.xからPython 3.xコードに変換されました。
終了したら、 example.pyは次の有効なPython3.xコードを含みます:
Python 3.x 3.0
def greet(name):
print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow