我正在尝试使用Python的pathlib模块测试程序。使用该os模块,您过去只需遵循相同的类似url的形式就可以访问网络驱动器。但是由于某种原因,您不能使用进行此操作pathlib。或者至少我不知道该怎么做。
使用该os模块,所有要做的就是:
path = os.path.join(r'//server-01', 'directory', 'filename.txt')
Run Code Online (Sandbox Code Playgroud)
但是,如果您尝试使用该pathlib模块执行此操作,则可以尝试执行以下操作:
path = Path('//server-01', 'directory', 'filename.txt')
Run Code Online (Sandbox Code Playgroud)
如果我在Windows计算机上,则路径将解析为:
>> WindowsPath('/server-01/directory/filename.txt)
Run Code Online (Sandbox Code Playgroud)
如果我说path.exists()我当然会的False。因为是,/server-01所以不存在,但是//server-01 确实存在。
当然,理想情况下,我希望在运行时得到的结果path.exists()是True,如果要显示path,结果将类似于:
>> WindowsPath('//server-01/directory/filename.txt')
Run Code Online (Sandbox Code Playgroud)
更新资料
这有点hacky,但我想它能奏效,无论我想知道正确的方法。
为了到达网络位置,您可以:
os.chdir(join(r'//server-01', 'directory', 'filename.txt'))
path = Path()
path = path.resolve()
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
>> WindowsPath('//server-01/directory/filename.txt')
path.exists()
>> True
Run Code Online (Sandbox Code Playgroud)
如果有人知道更好的方法,请告诉我。