Windowsで2to3を使う(2系コードの3系コードへの変換)

スポンサーリンク

ネット上のpythonの2系コードを3系コードに書き換えようとしても、エラーが出たり、書き換えの途中で元のコードに戻ったりします。そんな時、Python3に標準装備されている2to3が便利です。

例えばメモ帳にUTF-8の文字コードで print ‘Hello, World!’ とだけ書いて hello という名前でデスクトップ上に保存し、作成された hello.txt の拡張子を変えて hello.py にします。 
そしてcmd.exeを起動させ、変換したいファイルがある場所(例えばデスクトップ)に移動します。

cd C:\Users\(ユーザー名)\Desktop

差分を出力するには

2to3 hello.py

または(C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python36\Tools\scripts の中に2to3.pyがあるとすると)

python C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python36\Tools\scripts\2to3.py hello.py

と書きEnterを押します。2系の部分が-、3系の部分が+で出力されます。

ファイル出力するには

2to3 -w hello.py

または(C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python36\Tools\scripts の中に2to3.pyがあるとすると)

python C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python36\Tools\scripts\2to3.py -w hello.py

と書きEnterを押します。そうすると元の2系コードと同じ所に hello.py という名前で3系コードのファイルが作成されます。元の2系コードは hello.py.bak という名前に変わります。

変換したファイルを実行するにはcmd.exeで、ファイルがある場所に移動したまま

python hello.py

と書きEnterを押します。そうすると Hello, World! と表示され3系コードに変わったことがわかります。

ライブラリ名など変換されない単語もあるようなので、それらは手動で書き換える必要がありそうです。

参考サイト
2to3でPython2.xのコードを3.xのコードに変換 – Qiitaさん
2系から3系への変換ツール (2to3) | Python-izmさん