1.调用方式
cat 3.txt | ./add2Dict.py word.xml
2.逻辑实现
文档:http://docs.python.org/2/library/io.html
代码如下:
###确认输入GB18030编码
reader = io.open(sys.stdin.fileno(), mode='rb', closefd=False)
pipe_data = reader.read()
try:
pipe_data = pipe_data.decode('gb18030')
c_list = pipe_data.split('\n')
except:
print('请确认原文件是gbk(gb18030)编码!')
sys.exit(0)
原理: python从终端stdin读数据,采用二进制方式读入,手工解码.
存在问题:无法区分下面2个操作
(1) cat 2.txt | ./add2Dict.py word.xml
(2) ./add2Dict.py word.xml
解决办法: print('=====fp.isatty()= ', sys.stdin.isatty() ) 可以区分