【发布时间】:2019-12-18 20:21:44
【问题描述】:
我用subprocess.getoutput("rpm -qa").split("\n"),不是很好。 rpmfile模块只能读取.rpm文件
你能帮我找一个模块吗?
【问题讨论】:
我用subprocess.getoutput("rpm -qa").split("\n"),不是很好。 rpmfile模块只能读取.rpm文件
你能帮我找一个模块吗?
【问题讨论】:
如果你使用 Fedora,有一个名为 rpm 的模块来自 rpm-python 包,它允许你查询 rpm 数据库:
import rpm
ts = rpm.TransactionSet()
mi = ts.dbMatch()
for h in mi:
print "%s-%s-%s" % (h['name'], h['version'], h['release'])
这是文档中的一段简单代码。请参阅here 了解更多信息。
【讨论】:
也许下面的代码对某人有用。
import os
f = os.popen('rpm -qa')
arq = f.readlines()
#print("First file=" + arq[0].strip())
for x in arq:
print(x)
【讨论】:
我修改了类似于 Marcus Poli 发布的代码。这是在 CentOS 7.4 上使用 Python 2.7 和 3.6 测试的。我最初的问题是How do I check if an rpm package is installed using Python?
import os
rpm = 'binutils'
f = os.popen('rpm -qa')
arq = f.readlines()
for r in arq:
if rpm in r:
print("{} is installed".format(r.rstrip()))
输出:
binutils-devel-2.27-34.base.el7.x86_64 is installed
binutils-2.27-34.base.el7.x86_64 is installed
【讨论】: