Bas*_*ard 85
print可以在任何类似文件的对象上打印,包括sys.stderr.
print >> sys.stderr, 'Text'
Run Code Online (Sandbox Code Playgroud)
使用sys.stderr错误代替的优点sys.stdout是:
sys.stderr重定向到日志文件,则在记录错误之前程序可能崩溃的可能性较小.这个答案用Python 2编写.对于Python 3,请print('Text', file=sys.stderr)改用.
Dan*_*Lew 34
他们只是两件不同的事情.print一般去sys.stdout.这是值得知道的区别stdin,stdout以及stderr -他们都有自己的用途.
特别是,stdout应该用于正常的程序输出,而stderr应该只保留错误消息(异常程序执行).有用于拆分这些流的实用程序,它允许代码的用户区分正常输出和错误.
Mit*_*del 31
注意:这里有一些细微之处,包括流是否会进入交互式设备.最令人惊讶的是,在Python 3中,stderr是行缓冲的(至少在Unix中).例如,在终端窗口中,以下内容在Python 2中每两秒打印一个数字:
for n in range(5):
print >> sys.stderr, n, # final comma to squelch newline character
time.sleep(2)
Run Code Online (Sandbox Code Playgroud)
而在Python 3中,以下内容在循环结束时将所有数字打印在一起:
for n in range(5):
print(n, file=sys.stderr, end='') # print n to sys.stderr with no newline char
time.sleep(2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56723 次 |
| 最近记录: |