首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >了解标准输入标准输出标准错误

了解标准输入标准输出标准错误
EN

Stack Overflow用户
提问于 2013-01-28 12:24:29
回答 2查看 20.6K关注 0票数 19

我在试着理解stdin stdoutstderr

我总是在人们的代码中看到它们的使用,我不能确切地理解它们是什么。我假设他们与输入/输出有关,但一直在网上搜索解释,但找不到。有没有人知道一个好的链接和一个解释,或者如果它足够简单来解释它将会对我有很大的帮助。

因为我正在学习Python3,所以里面的例子会很有帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-01-28 12:27:27

sys.stdin
sys.stdout
sys.stderr

解释器用于标准输入、输出和错误的文件对象:

  • stdin用于所有交互式输入(包括对input());
  • stdout的调用用于print()和表达式语句的输出,以及用于input();
  • The解释器自身提示的提示,其错误消息将发送到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表示写入

票数 7
EN

Stack Overflow用户

发布于 2013-01-28 12:30:46

this能很好地解释它吗?

sys.stdin

sys.stdout

sys.stderr

对应于解释器的标准输入、输出和错误流的文件对象。标准输入用于除脚本之外的所有解释器输入,但包括对input()和raw_input()的调用。标准输出用于打印和表达式语句的输出,以及输入()和raw_input()的提示。解释器自己的提示和(几乎所有)错误消息都会发送到stderr。

stdout和stderr不必是内置的file对象:任何对象只要有一个带有字符串参数的write()方法就可以接受。

(更改这些对象不会影响由os模块中的os.popen()、os.system()或exec*()系列函数执行的进程的标准I/O流。)

使克莱里化

如果我告诉python shell执行一次打印:

print 'what is your name?'

“你叫什么名字”将转到stdout,不管它是什么。如果您没有进行任何重定向,这是默认情况下您正在使用的终端。您可以通过各种不同的方式与标准流进行交互,例如:

sys.stdout.flush()

告诉python shell强制将我print过的所有缓冲信息立即转到stdout

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14555402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档