Ree*_*e M 3 file filesize python-3.x
我正在创建一个基本的 GUI 作为一个大学项目。它扫描用户从他们的电脑上选择的硬盘驱动器,并为他们提供有关该硬盘的信息,例如其中的文件数量等......
我的扫描功能的一部分是,对于驱动器上的每个文件,获取所述文件的大小(以字节为单位),并将其添加到运行总数中。最后,将这个数字与 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 = bytes / 1024**3) 的相同公式,我仍然少了 0.2 GB。为什么 Python 发现的数据较少?
小智 5
使用 os.path.getsize(...) 可以获得文件的实际大小。\n但是 NTFS、FAT32...文件系统使用簇来存储数据,因此它们不会完全填满。
\n\n您可以看到这种差异,当您转到文件的属性时,“大小”和“磁盘上的大小”之间存在差异。现在,当您检查磁盘的文件大小时,它会提供已用完的簇的大小,而不是添加的文件的大小。
\n\n这里有一些更详细的信息:\n为什么磁盘\xe2\x80\x99上的\xe2\x80\x98Size\xe2\x80\x99和\xe2\x80\x98Size之间有很大差异?
\n| 归档时间: | 
 | 
| 查看次数: | 1297 次 | 
| 最近记录: |