我需要一种方法来在 Linux、Windows 和 OS X 上使用 python 来确定磁盘卷上的剩余空间。我目前正在解析各种系统调用(df、dir)的输出来完成此操作 - 有更好的方法吗?
import ctypes
import os
import platform
import sys
def get_free_space_mb(dirname):
"""Return folder/drive free space (in megabytes)."""
if platform.system() == 'Windows':
free_bytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(dirname), None, None, ctypes.pointer(free_bytes))
return free_bytes.value / 1024 / 1024
else:
st = os.statvfs(dirname)
return st.f_bavail * st.f_frsize / 1024 / 1024
请注意,您must传递目录名称GetDiskFreeSpaceEx()
上班
(statvfs()
适用于文件和目录)。可以得到一个目录名
从一个文件os.path.dirname()
.
另请参阅文档os.statvfs() and GetDiskFreeSpaceEx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)