gpt4 book ai didi

python-3.x - 为什么 Python 找到与 Windows 不同的文件大小?

转载 作者:行者123 更新时间:2023-12-01 12:21:27 25 4
gpt4 key购买 nike

我正在创建一个基本的 GUI 作为一个大学项目。它扫描用户从他们的 PC 中选择的硬盘驱动器,并为他们提供有关它的信息,例如上面的文件数量等......

我的扫描功能的一部分是,对于驱动器上的每个文件,以字节为单位获取所述文件的大小,并将其添加到运行总计中。最后,将数字与 Windows 总数进行比较后,我总是发现我的 Python 脚本找到的数据少于 Windows 所说的驱动器上的数据。

下面是代码...

import os

overall_space_used = 0

def Scan (drive):
global overall_space_used

for path, subdirs, files in os.walk (r"" + drive + "\\"):
for file in files:
overall_space_used = overall_space_used + os.path.getsize(os.path.join(path,file))
print (overall_space_used)

当在我的一个 HDD 上执行此操作时,Python 表示总共有 23,328,445,304 字节的数据 (21.7 GB)。但是,当我进入 Windows 中的驱动器时,它显示有 23,536,922,624 字节的数据 (21.9 GB)。为什么会有这种差异?

我手工计算,并使用 Windows 用于从字节转换为 gibibytes 的相同公式 (gibibytes = bytes/1024**3),我仍然少了 0.2 GB。为什么 Python 发现的数据较少?

最佳答案

使用 os.path.getsize(...) 你可以获得文件的实际大小。但是 NTFS、FAT32……文件系统使用集群在其中存储数据,因此它们不会被完全填满。

您可以看到这种差异,当您转到文件的属性时,“大小”和“磁盘上的大小”之间存在差异。现在,当您检查磁盘的文件大小时,它会为您提供已用完的簇的大小,而不是加起来的文件的大小。

这里有一些更详细的信息: Why is There a Big Difference Between ‘Size’ and ‘Size on Disk’?

关于python-3.x - 为什么 Python 找到与 Windows 不同的文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43700994/

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