![](/img/trans.png)
[英]Why does the python pathlib Path('').exists() return True?
[英]Why does Python's pathlib and os lib return different results for mapped network drives in Windows?
尝试在 Windows 10 上使用 Python 3 解析路径。有问题的路径可用作映射网络驱动器。 (这恰好是通过 VirtualBox 共享文件夹完成的,但我希望这与此处无关)。
好的旧os.path.abspath
为我提供了一个以在 Windows 中映射的驱动器号开头的路径。 这正是我所期望和需要的。
但是当我尝试升级到pathlib
的resolve
函数时,我得到了不同的结果,用 UNC 表示法。 这不是预期的,对我的目的没有用。 (许多程序不接受 UNC 路径作为输入,它们需要“本地”路径。)
pathlib
可以返回基于驱动器号的路径?演示:
PS C:\Users\user> python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import pathlib
>>> path = 'd:\\asdf'
>>> print(os.path.abspath(path))
d:\asdf
>>> print(pathlib.Path(path).resolve())
\\vboxsrv\code\asdf
我在 Mac 上的并行 Windows 上遇到了这个问题。 这是一个丑陋的修复,但如果您提前知道驱动器映射,您可以执行以下操作:
filepath = pathlib.Path('.')
filepathstr = str(filepath.resolve()).replace('\\\\Mac\\Home', 'W:')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.