Python stdout和stderr异常
从交互式提示中:Python stdout和stderr异常,python,Python,从交互式提示中: >>> import sys >>> sys.stdout.write('is the') is the6 “6”在那里做什么 另一个例子: >>> for i in range(3): ... sys.stderr.write('new black') ... 9 9 9 new blacknew blacknew black 数字从何而来?在3.x中,文件对象的write方法返回写入的字节数,并且交互式提示
>>> import sys
>>> sys.stdout.write('is the')
is the6
“6”在那里做什么
另一个例子:
>>> for i in range(3):
... sys.stderr.write('new black')
...
9
9
9
new blacknew blacknew black
数字从何而来?在3.x中,文件对象的
write
方法返回写入的字节数,并且交互式提示打印出您正在运行的任何内容的返回值。因此,您打印出的“是”
(6字节),然后解释器打印出6(从写入返回)。对于3.1
这在3.0之前不会发生,因为write方法返回的
None
,因此没有打印任何内容。它们是write的返回值,由交互式shell打印
试试
>>>三,
发生了什么?这发生在Python3上,而不是Python2上 Mike是正确的,Python3中的write返回写入的字节数,然后由交互式shell打印
Python2中的write返回None,因此未打印任何内容请不要将其收回。在我使用python 3.1.2的机器上,行为是相同的。python3.x中file对象的
write()
确实返回写入的字节数。。。如果OP将写操作的返回值赋给一个伪变量,虚假输出将消失。@Adrien:谢谢你指出这一点!我已经改正了。