例如,我有一个具有以下路径的文件:
/media/my_mountpoint/path/to/file.txt
我已经有了完整的路径并且想要得到:
/media/my_mountpoint
我怎样才能做到这一点?最好使用 Python 并且不使用外部库/工具。 (两者都不是必需的。)
您可以致电mount
命令并解析其输出以查找路径的最长公共前缀,或使用stat
系统调用来获取文件所在的设备并沿着树向上查找,直到到达不同的设备。
在Python中,stat
可以按如下方式使用(未经测试,可能必须扩展以处理符号链接和诸如联合挂载之类的外来东西):
def find_mount_point(path):
path = os.path.abspath(path)
orig_dev = os.stat(path).st_dev
while path != '/':
dir = os.path.dirname(path)
if os.stat(dir).st_dev != orig_dev:
# we crossed the device border
break
path = dir
return path
Edit: 我不知道os.path.ismount
直到刚才。这大大简化了事情。
def find_mount_point(path):
path = os.path.abspath(path)
while not os.path.ismount(path):
path = os.path.dirname(path)
return path
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)