Я пытаюсь протестировать программу, используя модуль 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
Если кто-нибудь знает лучший способ сделать это, дайте мне знать.