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

91

我在Linux下使用Python 2.6。 判断以下两个问题最快的方法:

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

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

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


你是否考虑了符号链接?尽管你可能有 /home 和 /mnt/somedisk,但 /home/foo/x 可能是指向目录 /mnt/somedisk/xyzzy 的符号链接 - 因此它出现在 /home 下,但实际上位于 /mnt/somedisk。 - Piskvor left the building
@Piskvor:目前我不需要遵循符号链接,它们只是普通的目录。第一个问题基本上是在问“找到最近的祖先目录,该目录上挂载了一个分区”。 - Federico A. Ramponi
请参见https://dev59.com/vXA75IYBdhLWcg3weY_u。 - Mechanical snail
12个回答

2
检查Windows PC上的磁盘使用情况可以按如下步骤进行:
import psutil

fan = psutil.disk_usage(path="C:/")
print("Available: ", fan.total/1000000000)
print("Used: ", fan.used/1000000000)
print("Free: ", fan.free/1000000000)
print("Percentage Used: ", fan.percent, "%")

它应该在任何平台上都能运行。它在 MacBook M2 Darwin 上运行良好。请访问 https://psutil.readthedocs.io/en/latest/#disks 查看详情。 - shamox
它应该在任何平台上都能运行。它在 MacBook M2 Darwin 上运行良好。请访问 https://psutil.readthedocs.io/en/latest/#disks 查看详情。 - undefined

1
通常在Linux中,/proc目录包含这样的信息,它是一个虚拟文件系统。例如,/proc/mounts提供有关当前已挂载磁盘的信息;您可以直接解析它。像topdf等实用程序都使用了/proc
我没有使用过它,但如果您想要一个包装器,这可能也有所帮助:http://bitbucket.org/chrismiles/psi/wiki/Home

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接