有几种方法可以写入 stderr:
print >> sys.stderr, "spam" # Python 2 only.
sys.stderr.write("spamn")
os.write(2, b"spamn")
from __future__ import print_function
print("spam", file=sys.stderr)
这些方法之间有什么区别?应该首选哪种方法?
网友回答:
import sys
sys.stderr.write()
是我的选择,只是更具可读性,并准确说明您打算做什么并跨版本移植。
编辑:对我来说,“pythonic”是关于可读性和性能的第三个想法……考虑到这两件事,使用 Python 80% 的代码将是 Pythonic。列表理解是不经常使用的“大事”(可读性)。
网友回答:
我发现这是唯一的一个简短,灵活,便携和可读的:
import sys
def eprint(*args, **kwargs):
print(*args, file=sys.stderr, **kwargs)
可选功能可节省一些重复。它可以以与标准功能相同的方式使用:eprint
print
>>> print("Test")
Test
>>> eprint("Test")
Test
>>> eprint("foo", "bar", "baz", sep="---")
foo---bar---baz
网友回答:
蟒蛇 3:
print("fatal error", file=sys.stderr)
蟒蛇 2:
print >> sys.stderr, "fatal error"
print >> sys.stderr
在 Python3 中消失了。
http://docs.python.org/3.0/whatsnew/3.0.html 说:
旧: 新:
print >> sys.stderr, "fatal error"
print("fatal error", file=sys.stderr)
对于我们中的许多人来说,将目的地降级到命令的末尾感觉有些不自然。另一种选择
sys.stderr.write("fatal errorn")
看起来更面向对象,并且优雅地从通用到具体。但请注意,这不是 的 1:1 替代。write
print
模板简介:该模板名称为【如何在 Python 中打印到 stderr?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。