我正在寻找我的HD上的空闲字节数,但是在python上这样做很麻烦.
我尝试过以下方法:
import os
stat = os.statvfs(path)
print stat.f_bsize * stat.f_bavail
Run Code Online (Sandbox Code Playgroud)
但是,在OS/X上它给了我一个17529020874752字节,大约是1.6 TB,这将是非常好的,但不幸的是不是真的.
达到这个数字的最佳方法是什么?
Nic*_*ley 38
尝试使用f_frsize而不是f_bsize.
>>> s = os.statvfs('/')
>>> (s.f_bavail * s.f_frsize) / 1024
23836592L
>>> os.system('df -k /')
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/disk0s2 116884912 92792320 23836592 80% /
Run Code Online (Sandbox Code Playgroud)
Gia*_*olà 19
在UNIX上:
import os
from collections import namedtuple
_ntuple_diskusage = namedtuple('usage', 'total used free')
def disk_usage(path):
"""Return disk usage statistics about the given path.
Returned valus is a named tuple with attributes 'total', 'used' and
'free', which are the amount of total, used and free space, in bytes.
"""
st = os.statvfs(path)
free = st.f_bavail * st.f_frsize
total = st.f_blocks * st.f_frsize
used = (st.f_blocks - st.f_bfree) * st.f_frsize
return _ntuple_diskusage(total, used, free)
Run Code Online (Sandbox Code Playgroud)
用法:
>>> disk_usage('/')
usage(total=21378641920, used=7650934784, free=12641718272)
>>>
Run Code Online (Sandbox Code Playgroud)
对于Windows,您可以使用psutil.
ram*_*daz 10
在python 3.3及更高版本中,shutil为您提供了相同的功能
>>> import shutil
>>> shutil.disk_usage("/")
usage(total=488008343552, used=202575314944, free=260620050432)
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29858 次 |
| 最近记录: |