【问题标题】:In Python, how can I get the file system of a given file path在 Python 中,如何获取给定文件路径的文件系统
【发布时间】:2011-10-30 11:35:21
【问题描述】:

在 python 中,给定一个目录或文件路径,如 /usr/local,我需要获取可用的文件系统。在某些系统中,它可能是 /(root)本身,而在其他一些系统中,它可能是 /usr。

我试过 os.statvfs 它没有帮助。我是否必须使用路径名运行 df 命令并从输出中提取文件系统?有没有更好的解决方案?

它仅适用于 linux/unix 平台。

谢谢

【问题讨论】:

  • 你想要挂载路径,还是其他一些信息?

标签: python filesystems filepath


【解决方案1】:

这里是 here 发现的食谱的略微修改版本。 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      df 本身打开并解析/etc/mtab 时,您可以采用这种方式并也解析此文件(替代方案是/proc/mounts),或者您确实解析df 输出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-10
        • 1970-01-01
        • 2013-08-05
        • 2011-10-02
        • 2015-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多