首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python shutil.disk_usage空闲和使用的空间值不反映实际使用的空间值和空闲空间值。

Python shutil.disk_usage空闲和使用的空间值不反映实际使用的空间值和空闲空间值。
EN

Stack Overflow用户
提问于 2020-12-07 19:42:11
回答 1查看 541关注 0票数 0

我使用Python的shutil.disk_usage函数,使用"/“作为参数来确定计算机的总空间、可用空间和空闲空间(我有一个使用macOS Catalina的Mac )。我得到的结果与实际结果不符。

Shutil.disk_usage的结果(“/”):

总计= 121.12 GB

使用= 11.3 GB

免费= 19.79 GB

通过检查我的计算机存储的实际结果:

总计= 121.12 GB

used = 97.78 GB {Docs (35.34GB) + Apps (20.19GB) + System (11.3GB) +其他(30.95GB)}

免费= 22.64 GB

两者的总值都是正确的,但是已使用的和空闲的空间值是off的。

系统使用的是11.3GB,这是shutil.disk_usage("/")计算的确切数量,但当我查看计算此金额的代码时,报告如下:

代码语言:javascript
复制
used = (f_blocks - f_bfree) * f_frsize

我将其理解为“总块减去空闲块(用过的块)乘以块大小等于所用空间的数量”。我不明白为什么这个值被报告为11.3GB,而不是总使用的空间。

同样,我也不明白为什么自由空间的价值:

代码语言:javascript
复制
free = f_bavail * f_frsize

我将其解读为“非超级用户可以使用的块数(我认为这意味着任何没有sudo访问权限的人都可以使用免费块,所以客户帐户可以使用免费块),块大小等于空闲空间的数量”。当我有22.64GB的空闲空间时,我不明白为什么这个值被报告为19.79GB。

我预计总数=使用免费,但显然不是这样的。

为什么使用shutil.disk_usage("/")的已用空间和空闲空间的计算值与实际值不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-09 15:42:36

搜索了一段时间后,我看到了这个帖子Get hard disk size in Python,其中一条评论指出,shutil.disk_usage只给出分区的大小,而不是整个磁盘。

我使用df -h给出了所有文件系统的挂载点和磁盘使用统计信息(总大小、使用空间、空闲空间)的列表。

将df -h与给定装入点的shutil.disk_usage的结果进行比较,当df -h的值乘以1024^3字节/gb (macOS使用1000^3字节/gb报告其存储值)时,得到相同的结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65188325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档