gpt4 book ai didi

python - 查找包含给定文件的文件系统的大小和可用空间

转载 作者:IT老高 更新时间:2023-10-28 12:29:59 26 4
gpt4 key购买 nike

我在 Linux 上使用 Python 2.6。最快的方法是什么:

  • 确定哪个分区包含给定的目录或文件?

    例如假设/dev/sda2挂载在/home上,/dev/mapper/foo挂载在/home/foo。从字符串 "/home/foo/bar/baz" 我想恢复对 ("/dev/mapper/foo", "home/foo") .

  • 然后,获取给定分区的使用统计信息?例如,给定 /dev/mapper/foo 我想获取分区的大小和可用空间(以字节为单位或大约以兆字节为单位)。

最佳答案

这并没有给出分区的名称,但您可以使用 statvfs Unix 系统调用直接获取文件系统统计信息。要从 Python 调用它,请使用 os.statvfs('/home/foo/bar/baz') .

结果中的相关字段,according to POSIX :

unsigned long f_frsize   Fundamental file system block size. 
fsblkcnt_t f_blocks Total number of blocks on file system in units of f_frsize.
fsblkcnt_t f_bfree Total number of free blocks.
fsblkcnt_t f_bavail Number of free blocks available to
non-privileged process.

为了理解这些值,乘以 f_frsize:

import os
statvfs = os.statvfs('/home/foo/bar/baz')

statvfs.f_frsize * statvfs.f_blocks # Size of filesystem in bytes
statvfs.f_frsize * statvfs.f_bfree # Actual number of free bytes
statvfs.f_frsize * statvfs.f_bavail # Number of free bytes that ordinary users
# are allowed to use (excl. reserved space)

关于python - 查找包含给定文件的文件系统的大小和可用空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4260116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com