我有一个在 Linux 下运行的 Python 脚本,它在给定目录中生成大量小文件。但是,许多 Linux 文件系统(如 ext4)在创建时设置了固定数量的 inode,因此我想确保在开始之前可以将这么多文件保存到该目录中。从命令行,您可以使用df -i /some/directory
.
在 Python 中,如何找到该目录所在的文件系统上的空闲 inode 数量?
我有一个在 Linux 下运行的 Python 脚本,它在给定目录中生成大量小文件。但是,许多 Linux 文件系统(如 ext4)在创建时设置了固定数量的 inode,因此我想确保在开始之前可以将这么多文件保存到该目录中。从命令行,您可以使用df -i /some/directory
.
在 Python 中,如何找到该目录所在的文件系统上的空闲 inode 数量?
这可以使用statvfs
系统调用来完成。在 Python(2 和 3)中,可以使用os.statvfs
. 该调用描述了包含路径指定的文件/目录的文件系统。
因此,要获取空闲 inode 的数量,请使用
#import os
os.statvfs('/some/directory').f_favail
此外,有可能某些百分比的 inode 是为 root 用户保留的。如果脚本以 root 身份运行并且您希望允许它使用保留的 inode,请使用f_ffree
而不是f_favail
.