一个名为== a.py ==的测试文件
import os
if __name__ == '__main__':
for x in range(0,1000):
try:
os.sys.stdout.buffer.write(b"hello\r\n")
os.sys.stdout.buffer.flush()
except OSError:
pass
单独运行时可以。但是在以下情况下有问题:
运行python a.py | 更多的
按Ctrl + c退出
然后我得到异常OSError:<_io.TextIOWrapper name =''mode ='w'encoding ='cp936'>中的OSError(22,'Invalid arguments')OSError(忽略)
我已经在os.sys.stdout.buffer操作周围发现了OSError,但是仍然出错。
如果我不使用os.sys.stdout.buffer.flush,则没有错误消息。如果我只使用print(),一切都很好。
那么如何正确地将字节写入标准输出呢?
我正在使用Windows 7 64位和Python 3.3.0 32位。
慕容森
相关分类