一個名為== a.py ==的測試文件import osif __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(忽略)我已經(jīng)在os.sys.stdout.buffer操作周圍發(fā)現(xiàn)了OSError,但是仍然出錯。如果我不使用os.sys.stdout.buffer.flush,則沒有錯誤消息。如果我只使用print(),一切都很好。那么如何正確地將字節(jié)寫入標準輸出呢?我正在使用Windows 7 64位和Python 3.3.0 32位。
如何在python3.3中將字節(jié)寫入stdout
慕田峪4524236
2021-03-12 16:17:18