python standardprint_如何在Python中打印到stderr?

There are several ways to write to stderr:

# Note: this first one does not work in Python 3

print >> sys.stderr, "spam"

sys.stderr.write("spam\n")

os.write(2, b"spam\n")

from __future__ import print_function

print("spam", file=sys.stderr)

That seems to contradict zen of Python #13 †, so what's the difference here and are there any advantages or disadvantages to one way or the other? Which way should be used?

† There should be one — and preferably only one — obvious way to do it.

解决方案

I found this to be the only one short + flexible + portable + readable:

from __future__ import print_function

import sys

def eprint(*args, **kwargs):

print(*args, file=sys.stderr, **kwargs)

The function eprint can be used in the same way as the standard print function:

>>> print("Test")

Test

>>> eprint("Test")

Test

>>> eprint("foo", "bar", "baz", sep="---")

foo---bar---baz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值