如何记住整个功能结果?

时间:2014-06-20 09:06:46

标签: python

我想创建一个智能DiscFree指标。

代码:

import os
os.system("df -h") 

我想使用正则表达式(以MB为单位剪切大小),但我不能,因为该函数返回磁盘空间并且值为“0”。

result = os.system("df -h")

变量“result”为“0”。

如何访问磁盘空间并使用它?

3 个答案:

答案 0 :(得分:1)

使用subprocess来调用控制台命令:

import subprocess

def command(cmd):
    try:
        p = subprocess.Popen(cmd, shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.STDOUT, close_fds = True)
        stdout = p.communicate()
        return stdout[0]
    except Exception as ex:
        raise Exception(ex)

df = command("df -h")

print(df)

打印哪些:

Filesystem      Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk0s2   233Gi  160Gi   72Gi    69% 42083619 18985821   69%   /
devfs          187Ki  187Ki    0Bi   100%      648        0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0        0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0        0  100%   /home

答案 1 :(得分:0)

使用os.popen代替os.system

import os
result = os.popen("df -h").read()
print result

注意: os.popen从Python 2.6开始不推荐使用,subprocess自python 2.4起可用,所以如果你想让代码在Python上工作> = 2.6使用{{1}如果支持Python< 2.4是重要的用途subprocess

答案 2 :(得分:0)

作为替代方案,您可以考虑使用一些库函数来获取可用空间:

import os
s = os.statvfs('/')
print (s.f_bavail * s.f_frsize) / 1024**2