私は理解しようとしていstdin
stdout
ますstderr
。
それらが人々のコードで常に使用されているのを目にしますが、それらが何であるかを正確に理解することはできません. 入出力に関係があると思いますが、オンラインで説明を探していて、見つかりません。誰かが説明との良いリンクを知っていますか、それが説明するのに十分簡単であるかどうかは、私にとって大きな助けになります.
私はPython 3を学んでいるので、その中の例が役に立ちます。
sys.stdin
sys.stdout
sys.stderr
標準入力、出力、およびエラーのためにインタープリターによって使用されるファイル オブジェクト:
stdin
すべてのインタラクティブな入力 (への呼び出しを含むinput()
) に使用されます。
stdout
print()
および式ステートメントの出力とinput()
;のプロンプトに使用されます。
インタプリタ自身のプロンプトとそのエラー メッセージは に移動しstderr
ます。
あなたのより多くの理解のために:
>>> import sys
>>> for i in (sys.stdin, sys.stdout, sys.stderr):
... print i
...
<open file '<stdin>', mode 'r' at 0x103451150>
<open file '<stdout>', mode 'w' at 0x1034511e0>
<open file '<stderr>', mode 'w' at 0x103451270>
モードr
は読み取りを意味し、モードw
は書き込みを意味します
これで十分に説明できますか?
sys.stdin
sys.stdout
sys.stderr
インタプリタの標準入力、標準出力、およびエラー ストリームに対応するファイル オブジェクト。
stdin は、スクリプト以外のすべてのインタープリター入力に使用されますが、input() および raw_input() への呼び出しが含まれます。
stdout は、print および expression ステートメントの出力と、input() および raw_input() のプロンプトに使用されます。
インタープリター自身のプロンプトと (ほとんどすべての) エラーメッセージは stderr に送られます。
stdout と stderr は組み込みのファイル オブジェクトである必要はありません。文字列引数を取る write() メソッドがある限り、任意のオブジェクトを使用できます。
(これらのオブジェクトを変更しても、os.popen()、os.system()、または os モジュールの関数の exec*() ファミリによって実行されるプロセスの標準 I/O ストリームには影響しません。)
明確にするために
Pythonシェルに印刷を行うように指示した場合:
print 'what is your name?'
stdout
「あなたの名前は何ですか」は、それが何であれ、に行きます。デフォルトでリダイレクトを行っていない場合は、使用している端末です。さまざまな方法で標準ストリームを操作できます。次に例を示します。
sys.stdout.flush()
Python シェルに、私がprint
編集したバッファリングされた情報をstdout
すぐに強制するように指示します。