2014/10/14

Python Tips:Python2 で Python3 の print 関数を使いたい

Python2でPython3の print 関数を使う方法をご紹介します。

__future__ ライブラリから print_function をインポートすることで、Python3のものと同等の print 関数が使えるようになります。
from __future__ import print_function

Python3の print 関数であれば、Python2の print 文にはなかったさまざまなオプションが使えるようになります。

たとえば、複数の引数を print 関数に渡したときの区切り文字を指定するには、 sep オプションを使います。
print("Red", "Hot", "Chili", sep="\n")
# => 改行つきで Red Hot Chili が順に表示される

末尾の改行コードをコントロールしたい場合には end オプションを使います。
from __future__ import print_function

print("Red", "Hot", "Chili", end="")  # => Red Hot Chili
# 末尾に改行コードが追加されない
これはPython2 で print value, と最後に , をつけるのと近い感じですね。

出力先を標準出力ではなくファイルに変えたい場合は、 file オプションにファイルオブジェクトを渡します。
f = open("test.txt", "w")

print("Red", "Hot", "Chili", file=f)

f.close()
# test.txt ファイル内に Red Hot Chili と書き込まれる


以上です。

使いどころは多くはなさそうですが、、万が一Python2のコードの中でPython3スタイルの print 関数を使う必要が出てきたときには、いいかもしれません


参考
PEP 3105 print as a function - What’s New in Python 2.6

0 件のコメント: