noa*_*ahd 5 python linux windows mount operating-system
我需要一个函数来确定目录是否是驱动器的安装点.我发现这个代码已经适用于linux:
def getmount(path):
path = 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
Run Code Online (Sandbox Code Playgroud)
但我不确定如何在Windows上使用它.我可以假设挂载点是驱动器号(例如C :)吗?我相信可以在Windows上安装网络,所以我也希望能够检测到该安装.
Windows 过去不称它们为“挂载点”[编辑:现在是这样,见下文!],并且您可以找到它们的两种典型/传统语法要么是驱动器号,例如Z:
,要么是其他\\hostname
(带有两个前导)反斜杠:小心转义或r'...'
在 Python 中使用表示法(例如此类文字字符串)。
编辑:由于支持 NTFS 5.0 挂载点,但根据这篇文章,它们的 API 处于相当严重的状态——“损坏且记录不全”,该文章的标题如是说。也许执行微软提供的mountvol.exe是最不痛苦的方法——mountvol drive:path /L
应该发出指定路径的已安装卷名称,或者只是mountvol
列出所有此类安装(我不得不说“应该”,因为我现在无法检查)。您可以执行它subprocess.Popen
并检查其输出。