首页 > Python > 如何在 Python 中打印到 stderr?

如何在 Python 中打印到 stderr?

上一篇 下一篇

有几种方法可以写入 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)

可选功能可节省一些重复。它可以以与标准功能相同的方式使用:eprintprint

>>> 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 替代。writeprint

模板简介:该模板名称为【如何在 Python 中打印到 stderr?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 164次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-24
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信公众平台 微信模板 微信文章 自适应 单页式简历模板 微信图片 微信素材 企业网站 响应式 html5
您可能会喜欢的其他模板