gpt4 book ai didi

python - 使用python的卷上剩余的跨平台空间

转载 作者:IT老高 更新时间:2023-10-28 12:29:13 24 4
gpt4 key购买 nike

我需要一种在 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

请注意,您必须传递一个目录名称,GetDiskFreeSpaceEx() 才能工作(statvfs() 适用于文件和目录)。你可以得到一个目录名从带有 os.path.dirname().

的文件中

另见 os.statvfs() 的文档和 GetDiskFreeSpaceEx .

关于python - 使用python的卷上剩余的跨平台空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com