了解标准输入标准输出标准错误[复制](Understanding stdin stdout stde

2019-07-18 19:32发布

这个问题已经在这里有一个答案:

  • 感到困惑的标准输入,输出和错误? 10个回答

我想了解stdin stdoutstderr

我看到他们在别人的代码中使用的所有的时间,我不能确切它们是什么理解。 我假设他们有事可做与输入/输出,但一直在网上寻找解释,并不能找到一个。 有谁知道有一个解释一个很好的链接,或者如果它是很简单的解释这将是对我有很大的帮助。

由于我在学习Python 3中,在该例子将是有益的。

Answer 1:

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就是写



Answer 2:

难道这说明它不够好?

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的时候了。



文章来源: Understanding stdin stdout stderr [duplicate]