![](/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.