真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

人生苦短我用python(04),Python執(zhí)行shell命令(附例子)

文章內(nèi)容為原創(chuàng),歡迎轉(zhuǎn)載請注明出處

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報價,主機托管價格性價比高,為金融證券行業(yè)聯(lián)通機房服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

作者: EflyPro->晦明禪師

文章來源:公眾號“睿江云計算


今天為大家介紹如何使用python的commands模塊調(diào)用linux shell命令,同時附上一個實際例子給大家參考。


commands庫介紹

commands庫很簡單,只有3個函數(shù),其中一個是不建議使用的,所以今天就跟大家介紹2個函數(shù)

commands.getstatusoutput(cmd)
#這個函數(shù)執(zhí)行cmd傳遞進來的命令,然后返回一個2-tuple (status, output),其中status是執(zhí)行cmd的返回結(jié)果,output是執(zhí)行cmd的輸出內(nèi)容。

commands.getoutput(cmd)
#這個是上面函數(shù)的簡化版,只返回執(zhí)行cmd的輸出內(nèi)容output

實現(xiàn)一個獲取本機磁盤分區(qū)使用率的腳本

平時我們可以使用 cat /proc/mounts 命令來查看掛載的設(shè)備分區(qū)列表

人生苦短我用python(04),Python執(zhí)行shell命令(附例子)

其中我們只統(tǒng)計/dev/開頭的分區(qū)。至于如何獲取分區(qū)的磁盤信息,則用os模塊的 os.statvfs 函數(shù),具體函數(shù)用法請看代碼注釋。

#!/usr/bin/env python
import commands
import os

def get_disk_uper(path):
    #計算磁盤分區(qū)使用率,
    #其中f_blocks是分區(qū)的總塊數(shù),換算成G
    #f_bavail是分區(qū)的可用塊數(shù),換算成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是執(zhí)行命令的返回值,默認情況下0是成功,非0是失敗
    if status != 0:
        print ststus, output
        return
    #分析返回內(nèi)容,對返回內(nèi)容以換行符作為分割
    for line in output.split("\n"):
        #只對/dev/ 分區(qū)設(shè)備獲取使用率
        if not line.startswith('/dev/'):
            continue
        #對一行內(nèi)容按照空格或者tab進行分割,以提取分區(qū)字段名稱
        temp = line.split()
        if len(temp) < 2:
            continue
        #獲取分區(qū)名
        dev_name = temp[1]
        dev_used = get_disk_uper(dev_name)
        print "[%s] = %d%%"%(dev_name, dev_used)

if __name__ == "__main__":
    get_disk_info()

執(zhí)行返回內(nèi)容如下

[/] = 10%
[/boot] = 21%

下期預(yù)告 

人生苦短我用python【0x02】yield淺析


分享題目:人生苦短我用python(04),Python執(zhí)行shell命令(附例子)
本文來源:http://weahome.cn/article/jpgphj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部