【发布时间】:2026-01-04 12:30:01
【问题描述】:
我使用 Python 的 shutil.disk_usage 函数,使用“/”作为参数来确定我的计算机的总空间、已用空间和可用空间(我有一台使用 macOS Catalina 的 Mac)。我得到的结果与实际结果不符。
shutil.disk_usage("/") 的结果:
总计 = 121.12 GB
已用 = 11.3 GB
免费 = 19.79 GB
检查我的计算机存储的实际结果:
总计 = 121.12 GB
已用 = 97.78 GB {文档 (35.34GB) + 应用程序 (20.19GB) + 系统 (11.3GB) + 其他 (30.95GB)}
免费 = 22.64 GB
两者的总值都是正确的,但已用和可用空间值是关闭的。
系统正在使用 11.3 GB,这是 shutil.disk_usage("/") 计算的确切数量,但是当我查看计算此数量的代码时,报告为:
used = (f_blocks - f_bfree) * f_frsize
我读为“总块减去空闲块(已用块)乘以块大小等于已用空间量”。我不明白为什么这个值报告为 11.3 GB,而不是已用空间总量。
同样我不明白为什么可用空间的价值:
free = f_bavail * f_frsize
我读为“非超级用户可用的块数(我认为这意味着任何没有 sudo 访问权限的人都可以使用空闲块,因此来宾帐户可以使用空闲块)乘以块大小等于可用空间量”。我不明白为什么当我有 22.64 GB 的可用空间时,这个值会报告为 19.79 GB。
我预计总计 = 已使用 + 免费,但显然不是这样。
为什么使用 shutil.disk_usage("/") 计算的已用和可用空间的值与实际值不同。
【问题讨论】:
标签: python