コード・ゴルフ]1の課題をいくつかやろうとしていますが、どれも入力を stdin
から取得する必要があります。これをPythonで実現するにはどうしたらよいでしょうか?
方法はいくつかあります。
sys.stdin
はファイルのようなオブジェクトで、すべてを読みたい場合には read
関数やreadlines
関数を、すべてを読んで自動的に改行で分割したい場合にはimport sys
を呼び出すことができます。(これを動作させるには import sys
が必要です。)
ユーザーに入力を促したい場合は、Python 2.X では raw_input
を、Python 3 では input
を使用してください。
実際に単にコマンドラインオプションを読みたい場合は、sys.argvリストでアクセスできます。
I/O in Pythonに関するWikibookの記事]3も参考になるでしょう。
これはLearning Pythonからの引用です。
import sys
data = sys.stdin.readlines()
print "Counted", len(data), "lines."
Unixでは、次のようにしてテストすることができます。
% cat countlines.py | python countlines.py
Counted 3 lines.
WindowsやDOSでは、次のようにします。
C:\> type countlines.py | python countlines.py
Counted 3 lines.