这个问题已经在这里有一个答案:
- 感到困惑的标准输入,输出和错误? 10个回答
我想了解stdin
stdout
和stderr
。
我看到他们在别人的代码中使用的所有的时间,我不能确切它们是什么理解。 我假设他们有事可做与输入/输出,但一直在网上寻找解释,并不能找到一个。 有谁知道有一个解释一个很好的链接,或者如果它是很简单的解释这将是对我有很大的帮助。
由于我在学习Python 3中,在该例子将是有益的。
这个问题已经在这里有一个答案:
我想了解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
对应的解释器的标准输入,输出和错误流的文件对象。
标准输入用于所有翻译输入,除了剧本,但包括输入()的raw_input和()的调用。
标准输出用于打印和表达语句的输出和输入()的raw_input和的提示()。
解释自己的提示和(几乎所有)的错误信息输出到stderr。
输出和错误不需要内置的文件对象:任何对象是可接受的,只要它有一个写()方法,它接受字符串参数。
(改变这些对象不影响标准的由os.popen()执行的处理的I / O数据流,使用os.system()或os模块在功能EXEC *()系列)。
为了clairify
如果我告诉蟒蛇壳里做打印:
print 'what is your name?'
“你叫什么名字”会去stdout
,不管它是什么。 如果你还没有提出,在默认情况下你使用的终端的任何重定向。 你可以用各种不同的方式,例如标准流交互:
sys.stdout.flush()
告诉蟒蛇壳强迫任何缓冲的信息,我已经print
版要到stdout
的时候了。