[英]check if program from list of programs is installed
使用Python 2.7.12在Ubuntu 16.04上運行。 如果機器上安裝了程序列表,我想檢查一下。 到目前為止,我還沒有這段代碼:
import subprocess
program = ['rsync', 'locate']
for x in program:
cmd = "dpkg-query -W " + x + " | grep -c " + x
process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
如果我不使用program作為字符串變量,我可以運行此命令:
exists = subprocess.call("dpkg-query -W rsync | grep -c 'rsync'", shell=True)
它返回0/1。 如果安裝了程序,你能幫我解決如何構建返回的循環嗎? 可能在5行左右,我需要的只是簡單的True / False(0/1)。 謝謝
您可以使用命令-v
import subprocess
list_cmd = ['rsync', 'locate', 'celery']
for cmd in list_cmd:
exist = subprocess.call('command -v '+ cmd + '>> /dev/null', shell=True)
if exist == 0:
print "I've got " + cmd
您的cmds(在列表中)必須在shell中可執行才能使用此解決方案。
我建議使用pythons apt
library 。 它們具有您目前看來需要的所有功能。 我目前沒有時間提供樣品 - 如果有必要,我會在以后再做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.