在Python中,如何获取给定文件路径的文件系统
在 python 中,给定一个目录或文件路径(如 /usr/local),我需要获取可用的文件系统。在某些系统中,它可能是 /(root)本身,而在另一些系统中,它可能是 /usr。
我尝试了 os.statvfs 它没有帮助。我是否必须使用路径名运行 df 命令并从输出中提取文件系统?有更好的解决方案吗?
它仅适用于 linux/unix 平台。
谢谢
In python, given a directory or file path like /usr/local, I need to get the file system where its available. In some systems it could be / (root) itself and in some others it could be /usr.
I tried os.statvfs it doesnt help. Do I have to run the df command with the path name and extract the file system from the output? Is there a better solution?
Its for linux/unix platforms only.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是此处找到的配方的稍微修改版本。
添加了 os.path.realpath 以便正确处理符号链接。
Here is a slightly modified version of a recipe found here.
os.path.realpath
was added so symlinks are handled correctly.使用 os.stat 获取相关文件/目录的设备号(st_dev 字段),然后迭代系统挂载(/etc/mtab) code> 或
/proc/mounts
),将每个挂载点的st_dev
与该数字进行比较。Use
os.stat
to obtain device number of the file/directory in question (st_dev
field), and then iterate through system mounts (/etc/mtab
or/proc/mounts
), comparingst_dev
of each mount point with this number.由于
df
本身打开并解析/etc/mtab
,您可以采用这种方式并解析此文件(另一种选择是/proc/mounts< /code>),或者您确实解析了 df 输出。
As
df
itself opens and parses/etc/mtab
, you could either go this way and parse this file as well (an alternative would be/proc/mounts
), or you indeed parse thedf
output.