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 )
第二种方案更理想一些。