我最近使用python中的os.walk()创建了一个简单的文件大小计算器,如下所示:
import os
totalSize = 0
for root, dirs, files in os.walk("F:\\Japan"):
for name in files:
totalSize += os.path.getsize(os.path.join(root, name))
for name in dirs:
totalSize += os.path.getsize(os.path.join(root, name))
print(totalSize)
当我执行此代码时,输出为7,731,584,492字节,但是当我通过右键单击>分析同一目录时属性文件大小为7,731,486,188字节。现在,我知道98,304字节的差异并不大,但我想知道我的代码是否存在问题或者是否存在这种差异的更根本原因。
谢谢。
答案 0 :(得分:1)
在我自己的机器上进行以下测试:
>>> os.path.getsize(r'F:\My Music\Audio')
98304
我想说Windows大小计算不包括描述目录本身的文件所占用的空间,而您的代码显式地执行(使用第二个内部for
循环)。您正在检查的特定目录的文件恰好具有该大小。