Python 3.x 为什么Python会在Windows中找到不同的文件大小?
我正在创建一个基本的GUI作为一个大学项目。它会扫描用户从电脑中选择的硬盘,并向用户提供相关信息,如硬盘上的文件数等 我的扫描功能的一部分是,对于驱动器上的每个文件,以字节为单位计算所述文件的大小,并将其添加到运行总数中。最后,在将这个数字与Windows总数进行比较之后,我总是发现我的Python脚本找到的数据少于Windows所说的驱动器上的数据 下面是代码Python 3.x 为什么Python会在Windows中找到不同的文件大小?,python-3.x,file,filesize,Python 3.x,File,Filesize,我正在创建一个基本的GUI作为一个大学项目。它会扫描用户从电脑中选择的硬盘,并向用户提供相关信息,如硬盘上的文件数等 我的扫描功能的一部分是,对于驱动器上的每个文件,以字节为单位计算所述文件的大小,并将其添加到运行总数中。最后,在将这个数字与Windows总数进行比较之后,我总是发现我的Python脚本找到的数据少于Windows所说的驱动器上的数据 下面是代码 import os overall_space_used = 0 def Scan (drive): global ove
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)
在my HDD上执行此操作时,Python表示总共有23328445304字节的数据(21.7GB)。然而,当我进入Windows中的驱动器时,它显示有23536922624字节的数据(21.9 GB)。为什么会有这种差异
我手工计算,使用Windows用来从字节转换为千兆字节的相同公式(gibibytes=bytes/1024**3
),我仍然到达了。短了2 GB。为什么Python发现的数据更少 使用os.path.getsize(…)可以获得文件的实际大小。
但是NTFS,FAT32,。。。文件系统使用集群来存储数据,所以它们并没有被完全填满
您可以看到这种差异,当您转到文件的属性时,“大小”和“磁盘大小”之间存在差异。现在,当您检查磁盘的文件大小时,它会给出已用集群的大小,而不是添加的文件的大小
以下是一些更详细的信息:
有没有办法从python中同时获取“大小”和“磁盘大小”?