26.1 通过管道重定向标准输入时如何保持raw read https://scz.617.cn/python/200604041509.txt Q: 测试环境是Python 2.4 For Windows。 > hexout "Grin: Grin\r\n" | python hexdump.py byteArray [ 11 bytes ] -> 16 bytes per line 00000000 47 72 69 6E 3A 20 47 72-69 6E 0A Grin: Grin. \r\n一起传给管道时,\r不见了! > hexout "\r" | python hexdump.py byteArray [ 1 bytes ] -> 16 bytes per line 00000000 0D . > hexout "\r\n" | python hexdump.py byteArray [ 1 bytes ] -> 16 bytes per line 00000000 0A . hexdump.py中用如下代码读取标准输入: buf = array( 'B', stdin.read() ) 通过管道重定向标准输入时如何保持raw read? A: flier > hexout "\r\n" | python -u hexdump.py byteArray [ 2 bytes ] -> 16 bytes per line 00000000 0D 0A .. 或者修改hexdump.py,增加如下代码: import msvcrt, os # # stdin/stdout/stderr # msvcrt.setmode( 0, os.O_BINARY ) msvcrt.setmode( 1, os.O_BINARY ) msvcrt.setmode( 2, os.O_BINARY ) 第二种方案更理想一些。