我需要使用命令lsmod
来检查是否加载了一个 mod,但我不知道在运行它后如何读取它。我subprocess.Popen()
用来运行它。任何正确方向的观点都将不胜感激。:D
问问题
358 次
4 回答
2
使用subprocess.Popen(stdout=subprocess.PIPE)
,然后调用subprocess.communicate()
以读取输出。基本用法:
process = subprocess.Popen(['lsmod'], stdout=subprocess.PIPE) # Can also capture stderr
result_str = process.communicate()[0] # Or [1] for stderr
有关更多详细信息,请参阅Python 文档。
于 2013-04-25T10:48:08.200 回答
1
为什么不直接使用subprocess.check_output()
?
于 2013-04-25T10:47:52.540 回答
0
lsmod 不会告诉你这个。你必须解析它的输出。
如果您愿意使用外部模块,请查看https://github.com/agrover/python-kmod/ 。
于 2013-04-25T10:48:26.337 回答
0
假设您正在寻找ath
in lsmod
,那么命令将是: lsmod | grep ath
使用subprocess
:
In [60]: c=subprocess.Popen("lsmod",stdout=subprocess.PIPE)
In [61]: gr=subprocess.Popen(["grep" ,"ath"],stdin=c.stdout,stdout=subprocess.PIPE)
In [62]: print gr.communicate()[0]
ath5k 135206 0
ath 19188 1 ath5k
mac80211 461261 1 ath5k
cfg80211 175574 3 ath5k,ath,mac80211
于 2013-04-25T10:53:23.130 回答