Python 獲取檔案系統使用率

wpgy發表於2019-09-27

from subprocess import Popen, PIPE

# 執行作業系統命令並返回執行結果

def exec_shell(shell_cmd):
    process = Popen(shell_cmd, shell=True, stdout=PIPE, stderr=PIPE)
    stdout, stderr = process.communicate()
    return stdout, stderr

# 獲取磁碟使用率

# 引數 target_path: 待檢測掛載點,如果指定了該引數則只檢測該掛載點,否則檢測所有本地檔案系統

def get_disk_space_usage(target_path=''):
    data = []
     cmd = 'df -lm' # Local FileSystem only
    if target_path.strip() != '':
        if os.path.exists(target_path):
            cmd = 'df -m '+target_path.strip()
    res = exec_shell(cmd)[0]
    res_lines = res.split(os.linesep)
    del res_lines[0] # delete line header
    for line in res_lines:
        if '%' in line:
            line_tmp = re.split( r'\s+|\t', line.strip() )
            if '%' in line_tmp[-2] and '/' in line_tmp[-1]:
                line_data = {}
                line_data['total_mb'] = int( line_tmp[-5].strip() )
                line_data['used_mb'] = int( line_tmp[-4].strip() )
                line_data['free_mb'] = int( line_tmp[-3].strip() )
                line_data['used_pct'] = int( line_tmp[-2].strip().strip('%') )
                line_data['free_pct'] = 100 - line_data['used_pct']
                line_data['mount_point'] = line_tmp[-1].strip()
                data.append(line_data)
    return data

# 呼叫函式
res = get_disk_space_usage()

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31560527/viewspace-2658448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章