Pythonic способ проверить список пакетов, установленных в Centos/Redhat?Pythonic способ проверить, установлен ли пакет или нет
В Баш скрипт, я бы:
rpm -qa | grep -w packagename
Pythonic способ проверить список пакетов, установленных в Centos/Redhat?Pythonic способ проверить, установлен ли пакет или нет
В Баш скрипт, я бы:
rpm -qa | grep -w packagename
вы можете использовать Subprocess:
import subprocess
child = subprocess.Popen("rpm -qa | grep -w packagename", stdout=subprocess.PIPE, shell=True)
output = child.communicate()[0]
print output
использованием os:
import os
os.system("rpm -qa | grep -w packagename")
Запуск linux-команды внутри python займет больше времени. –
import os
present=0
notpresent=0
f3=open('INSTALLED.log','w')
f2=open('NOTINSTALLED.log','w')
f1=open('installed_packagelist.log','w')
var = os.popen("rpm -qa --queryformat '[%{NAME}\n]'").read()
f1.write(var)
lines = [line.rstrip('\n') for line in open('installed_packagelist.log')]
for index in range(len(lines)):
contents = lines[index]
test_str = "rpm -V " + contents
var = os.system(test_str)
if (var == 0):
print contents + "file present"
present = present +1
f3.write(contents)
else:
print contents + "file not present"
notpresent = notpresent + 1
f2.write(contents)
print present
print notpresent
f2.close()
f3.close()
f3=open('INSTALLED.log','r')
f2=open('NOTINSTALLED.log','r')
data=f3.read()
print data
print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
data=f2.read()
print data
Пожалуйста, прочитайте раздел [Как ответить] (http://stackoverflow.com/help/how-to-answer). Вы должны хотя бы дать некоторое описание, а не только часть кода. –
может сделать то же самое в питона используя системную команду. – Marcin
Это тот же вопрос? http://stackoverflow.com/questions/739993/how-can-i-get-a-list-of-locally-installed-python-modules – zehnpaard
У rpm, похоже, есть привязки python, предоставляемые через 'rpm-python': http: //docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch16s03s04.html (Вот что я нашел, не использовал его ..) – sebastian