bash与python的管道调用方法

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() ) 可以区分




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值