猿问

Python中目录的磁盘使用情况

为了安全起见,我有一些bash代码将文件和目录移动到/tmp/rmf而不是删除它们。

我正在将代码迁移到Python以添加一些功能。添加的功能之一是检查上的可用大小,/tmp并断言已移动的目录可以放入其中/tmp

使用os.statvfs检查可用空间,但是如何测量已移动目录的磁盘使用情况?

我可以透过电话du使用subprocess,或递归遍历目录树,总结每个文件的大小。哪种方法更好?


斯蒂芬大帝
浏览 176回答 2
2回答

慕的地6264312

我认为您可能想重新考虑您的策略。两个原因:检查是否可以移动文件,断言可以移动文件,然后移动文件为操作提供了内置的竞争条件。在声明之后但在移动文件之前,将在/ tmp /中创建一个大文件。在文件系统之间移动文件将导致大量开销。这就是为什么在OSX上每个卷都有自己的“废纸'”目录的原因。您无需移动构成文件的块,而只需创建一个指向现有数据的新索引节点即可。我会考虑文件需要多长时间可用以及文件使用方的可见性。如果这是后端自动发生的所有事情-重命名文件以使其从计算机和人类消费者中“隐藏”起来,在大多数情况下就很容易了,并且具有原子操作的额外好处)偶尔扫描文件系统以查找“旧”文件,以将其删除并在宽限期过后将其删除。没戏 由于它只是要还原的重命名,因此还使还原文件变得容易得多。
随时随地看视频慕课网APP

相关分类

Python
我要回答