我一直在试图弄清楚如何使用 python 检索(快速)给定 HFS+ 驱动器上的文件数。
我一直在玩 os.statvfs 之类的东西,但什么都得不到(这对我来说似乎有帮助)。
有任何想法吗?
编辑:让我更具体一点。=]
由于各种原因,我正在围绕 rsync 编写一个类似时间机器的包装器,并且希望非常快速地估计(不必是完美的)驱动器 rsync 将要扫描的文件数量。通过这种方式,我可以在 rsync 构建初始文件列表时查看进度(如果您将其称为rsync -ax --progress
,或使用-P
选项),并将百分比和/或 ETA 报告给用户。
这与实际备份完全分开,跟踪进度没有问题。但是对于我正在处理数百万个文件的驱动器,这意味着用户正在观察文件数量的计数器在几分钟内没有上限。
到目前为止,我已经尝试使用答案之一中描述的方法来使用 os.statvfs ,但结果对我来说没有意义。
>>> import os
>>> os.statvfs('/').f_files - os.statvfs('/').f_ffree
64171205L
更便携的方式在这台机器上给了我大约 110 万,这与我在这台机器上看到的所有其他指标相同,包括 rsync 运行它的准备工作:
>>> sum(len(filenames) for path, dirnames, filenames in os.walk("/"))
1084224
请注意,第一种方法是即时的,而第二种方法让我在 15 分钟后回来更新,因为它只需要很长时间才能运行。
有谁知道获得这个数字的类似方法,或者我如何处理/解释 os.statvfs 数字有什么问题?