pythonpopen会报错_python2 subprocess: Popen简单用法

subprocess: Popen

前面使用快捷的 subprocess 函数,它们都是 Popen 类的包装器,直接使用 Popen 会对如何运行命令,以及如何处理输入和输出流有更好,更多的控制。

1. 单向通信(只读,只读取输出)

运行一个进程并读取他的所有输出,可以设置 Popen 的 stdout 为 subprocess.PIPE,并且通过调用 communicate() 获取输出:import subprocess

pp = subprocess.Popen(['echo', '"Fuvism"'],

stdout=subprocess.PIPE,

)

stdout = pp.communicate()[0]

print 'stdout: ', stdout

输出stdout: "Fuvism"

2. 双向通信(读写,还能给命令提供额外的输入)import subprocess

pp = subprocess.Popen(['cat', '-'],

stdout=subprocess.PIPE,

stdin=subprocess.PIPE,

)

msg = 'Fuvism'

stdout = pp.communicate(msg)[0]

print 'stdout: ', stdout

其中 communicate() 多了一个参数 msg,这个参数是我们“写入”命令的内容,可以是任意内容

输出:stdout: "Fuvism"

3. 捕获错误import subprocess

pp = subprocess.Popen(['cat', '-'],

stdout=subprocess.PIPE,

stdin=subprocess.PIPE,

stderr=subprocess.PIPE,

)

msg = 'Fuvism'

stdout, stderr = pp.communicate(msg)

print 'stdout: ', stdout

print 'stderr: ', stderr

输出stdout: "Fuvism"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值