19

私は理解しようとしていstdin stdoutますstderr

それらが人々のコードで常に使用されているのを目にしますが、それらが何であるかを正確に理解することはできません. 入出力に関係があると思いますが、オンラインで説明を探していて、見つかりません。誰かが説明との良いリンクを知っていますか、それが説明するのに十分簡単であるかどうかは、私にとって大きな助けになります.

私はPython 3を学んでいるので、その中の例が役に立ちます。

4

2 に答える 2

7
sys.stdin
sys.stdout
sys.stderr

標準入力、出力、およびエラーのためにインタープリターによって使用されるファイル オブジェクト:

  • stdinすべてのインタラクティブな入力 (への呼び出しを含むinput()) に使用されます。

  • stdoutprint()および式ステートメントの出力と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は書き込みを意味します

于 2013-01-28T04:27:26.513 に答える
3

これで十分に説明できますか?

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すぐに強制するように指示します。

于 2013-01-28T04:30:45.520 に答える