在Python中,我如何获取给定文件路径的文件系统?

4
在Python中,如果给出像 /usr/local 这样的目录或文件路径,则需要获取其所在的文件系统。在某些系统中,它可能是 /(根)本身,在其他一些系统中它可能是 /usr。
我尝试过 os.statvfs,但没用。我必须使用路径名运行 df 命令并从输出中提取文件系统吗?是否有更好的解决方案?
这适用于仅限Linux / Unix平台。
谢谢

你只需要挂载路径,还是其他信息也需要? - utdemir
3个回答

7
这是一个略微修改过的食谱,原始版本可以在这里找到。 添加了os.path.realpath来正确处理符号链接。
import os
def getmount(path):        
    path = os.path.realpath(os.path.abspath(path))
    while path != os.path.sep:
        if os.path.ismount(path):
            return path
        path = os.path.abspath(os.path.join(path, os.pardir))
    return path

4
使用os.stat获取文件/目录的设备号(st_dev字段),然后遍历系统挂载点(/etc/mtab/proc/mounts),将每个挂载点的st_dev与该数字进行比较。

2

df本身打开并解析/etc/mtab文件,您可以按照这种方式解析该文件(另一种选择是/proc/mounts),或者确实解析df输出。


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