您好,登錄后才能下訂單哦!
文章內容為原創,歡迎轉載請注明出處
作者: EflyPro->晦明禪師
文章來源:公眾號“睿江云計算”
今天為大家介紹如何使用python的commands模塊調用linux shell命令,同時附上一個實際例子給大家參考。
commands.getstatusoutput(cmd) #這個函數執行cmd傳遞進來的命令,然后返回一個2-tuple (status, output),其中status是執行cmd的返回結果,output是執行cmd的輸出內容。 commands.getoutput(cmd) #這個是上面函數的簡化版,只返回執行cmd的輸出內容output
其中我們只統計/dev/開頭的分區。至于如何獲取分區的磁盤信息,則用os模塊的 os.statvfs 函數,具體函數用法請看代碼注釋。
#!/usr/bin/env python import commands import os def get_disk_uper(path): #計算磁盤分區使用率, #其中f_blocks是分區的總塊數,換算成G #f_bavail是分區的可用塊數,換算成G info = os.statvfs(path) total = round(float(info.f_bsize * info.f_blocks)/1024/1024/1024, 2) free = round(float(info.f_bsize * info.f_bavail)/1024/1024/1024, 2) return 100 - int(float(free) / float(total) * 100) def get_disk_info(): disk_info = {} (status, output) = commands.getstatusoutput('cat /proc/mounts') #status是執行命令的返回值,默認情況下0是成功,非0是失敗 if status != 0: print ststus, output return #分析返回內容,對返回內容以換行符作為分割 for line in output.split("\n"): #只對/dev/ 分區設備獲取使用率 if not line.startswith('/dev/'): continue #對一行內容按照空格或者tab進行分割,以提取分區字段名稱 temp = line.split() if len(temp) < 2: continue #獲取分區名 dev_name = temp[1] dev_used = get_disk_uper(dev_name) print "[%s] = %d%%"%(dev_name, dev_used) if __name__ == "__main__": get_disk_info()
執行返回內容如下
[/] = 10% [/boot] = 21%
人生苦短我用python【0x02】yield淺析
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。