我正在尝试使用Python的pathlib
模块测试程序。在使用os
模块时,您只需按照相同的类似URL的格式即可访问网络驱动器。但由于某种原因,您无法使用pathlib
进行此操作。或者至少我无法弄清楚如何做到这一点。
使用os
模块,您只需要执行以下操作:
path = os.path.join(r'//server-01', 'directory', 'filename.txt')
但如果你试图使用 pathlib
模块来实现这一点,可以尝试类似以下的代码:
path = Path('//server-01', 'directory', 'filename.txt')
如果我在Windows机器上,路径将解析为:
>> WindowsPath('/server-01/directory/filename.txt)
如果我说path.exists()
,当然会得到False
。因为是的,/server-01
不存在,但是//server-01
存在。
理想情况下,当我运行path.exists()
时,期望得到的结果是True
,如果我要显示path
,它应该看起来像这样:
>> WindowsPath('//server-01/directory/filename.txt')
更新
虽然这种方法有点取巧,但它确实可以工作,但无论如何,我想知道正确的方法。
为了访问网络位置,您可以:
os.chdir(join(r'//server-01', 'directory', 'filename.txt'))
path = Path()
path = path.resolve()
结果大致是这样的:
>> WindowsPath('//server-01/directory/filename.txt')
path.exists()
>> True
如果有人知道更好的方法,请告诉我。
PureWindowsPath
有效吗? - Denis Rasulev