如何获得Python的os.path.realpath返回Windows替换驱动器上的“真实”路径?

时间:2019-02-25 23:26:12

标签: python-3.x windows

Python的 os.path.realpath 与Windows平台上的带驱动器的驱动器一起使用时,请勿将带驱动器的路径解析为 real 路径。

例如,创建像这样的带驱动器的驱动器:

subst S: C:\Users\Public\Desktop

并像这样检查python中的真实路径:

import os
myPath = "S:\\"
print("Real path of: " + myPath + " is: " + os.path.realpath(myPath) )

打印

Real path of: S:\ is: S:\

subst命令的文档中,带驱动器的驱动器称为虚拟驱动器。 Virtual(虚拟)表示“不真实”,表明Python realpath 命令无法像Windows上假定的那样工作。

该代码用于设置Docker容器,路径用于安装。 Docker会询问用户是否允许将带补贴的驱动器用作共享驱动器,这将失败,因为Docker无法使用共享带补贴的驱动器。这就是为什么获取真实正确路径的关键。

如何在Python中从上述 S:\\ 获取正确的路径,例如从 C:\ Users \ Public \ Desktop 中获得?

更新: 提交Python Bugreport后,有消息说在Windows上存在对Realpath更新,正确版本的请求请求。在此期间,可以使用:

pathlib.Path('S:\\').resolve()

解析为 real 路径,即c:\ Users ...等!

1 个答案:

答案 0 :(得分:1)

当前正确的答案是:

pathlib.Path('S:\\').resolve()

感谢太阳神(Eryk Sun),请参见https://bugs.python.org/issue36112