Python Tips: Python 2 で Python 3 の print 関数を使いたい

Python 2でPython 3の print 関数を使う方法をご紹介します。

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

from __future__ import print_function

Python 3の print 関数であれば、Python 2の 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
# 末尾に改行コードが追加されない

これはPython 2 で print value, と最後に , をつけるのと近い感じですね。

出力先を標準出力ではなくファイルに変えたい場合は、 file オプションにファイルオブジェクトを渡します。

f = open("test.txt", "w")

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

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

以上です。

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

参考