在Python中,如何获取给定文件路径的文件系统
在python中,给定一个目录或文件路径,如/usr/local,我需要在文件系统可用的地方获取文件系统。在一些系统中,它可以是/(root)本身,在另一些系统中,它可以是/usr 我试过os.STATVS它没用。我是否必须使用路径名运行df命令并从输出中提取文件系统?有更好的解决办法吗 它仅适用于linux/unix平台在Python中,如何获取给定文件路径的文件系统,python,filesystems,filepath,Python,Filesystems,Filepath,在python中,给定一个目录或文件路径,如/usr/local,我需要在文件系统可用的地方获取文件系统。在一些系统中,它可以是/(root)本身,在另一些系统中,它可以是/usr 我试过os.STATVS它没用。我是否必须使用路径名运行df命令并从输出中提取文件系统?有更好的解决办法吗 它仅适用于linux/unix平台 感谢使用os.stat获取相关文件/目录的设备号(st\u dev字段),然后迭代系统装载(/etc/mtab或/proc/mounts),将每个装载点的st_dev与此数字
感谢使用
os.stat
获取相关文件/目录的设备号(st\u dev
字段),然后迭代系统装载(/etc/mtab
或/proc/mounts
),将每个装载点的st_dev
与此数字进行比较。当df
本身打开并解析/etc/mtab
时,您可以这样做,也可以解析此文件(另一种方法是/proc/mounts
),或者您确实解析了df
输出。这里是一个稍微修改过的配方。
添加了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
您想要的只是装载路径,还是其他一些信息?