Quine(クワイン)をPythonで

Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~の練習問題(P.23)の問4、「自分自身のソースコードを出力するRubyプログラムを書いてください」のPython版を考える。このようなプログラムをQuineと言うらしい。

% cat quine.py

% python quine.py

の出力が同じになればよい。Quineがどう役に立つのか、ということは深く考えない。

すぐに思い付くのは次のコード。

import sys
print open(sys.argv[0], 'r').read()[:-1]

最後の[:-1]がないと、末尾に空行が付いてしまい、catの出力と一致しない。
Rubyではファイルアクセス処理を使わずに書けるらしいが、Pythonでもあるのかな。