python中的subprocess.Popen | 9
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的subprocess.Popen | 9相关的知识,希望对你有一定的参考价值。
在收集snmp数据的过程中用到了subprocess这个模块,本来想用其他python里面关于snmp的库,还是觉得麻烦就直接调用snmpwalk来收集数据。
最开始想用subprocess.call()这个函数,然而这个函数没有和其他进程通信的功能就放弃了
google了一下找到subprocess.Popen()这个函数,具体用法后面会贴一个别人写的帖子
其中subprocess.PIPE类似于pipe()系统调用,不过不需要指定PID,只需要把stdout,stdin,error指定为subprocess.PIPE就可以了
我写的这个小脚本里面有参数shell=True,意思是通过shell执行命令而不是直接的execvp()
#!/usr/bin/env python
# gathering snmp data
import subprocess
import os
cmd="snmpwalk -v 2c ip -c group"
fd=open("/home/user/snmptest","w")
data=subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True)
fd.write(data.stdout.read())
fd.close()
执行之后snmptest里面就写入了收集来的snmp数据
以上是关于python中的subprocess.Popen | 9的主要内容,如果未能解决你的问题,请参考以下文章
Python 的 subprocess.Popen 是不是接受路径中的空格?
如何使用Python中的subprocess.Popen返回编码值?
将python中的双引号shell命令传递给subprocess.Popen()?
为啥不在 Python 中的 subprocess.Popen 中使用 `shell=True`? [复制]