Конвертировать WindowsPath в PosixPath - PullRequest
0 голосов
/ 13 февраля 2019

Я использую pathlib для управления моими путями в своем проекте Python с использованием класса Path.

Когда я использую Linux, все работает нормально.Но в Windows у меня есть небольшая проблема.

В какой-то момент в моем коде я должен написать файл JavaScript, в котором перечислены ссылки на несколько других файлов.Эти пути должны быть записаны в формате POSIX.Но когда я делаю str(my_path_instance) в Windows, путь записывается в формате Windows.

Знаете ли вы простой способ преобразования WindowsPath в PosixPath с помощью pathlib?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Python pathlib , если вы хотите манипулировать путями Windows на машине Unix (или наоборот) - вы не можете создать экземпляр WindowsPath при работе в Unix, но вы можете создать экземпляр PureWindowsPath/PurePosixPath

.

enter image description here

0 голосов
/ 13 февраля 2019

pathlib имеет as_posix метод для этой цели:

pathlib.path('foo\\bar').as_posix()

Кроме этого, вы обычно можете конвертировать пути Windows и POSIX, вызывая соответствующий конструктор. В документации говорится , что

Вы не можете создать экземпляр WindowsPath при работе в Unix, но вы можете создать экземпляр PureWindowsPath.[или наоборот]

Поэтому используйте конструктор класса Pure*:

str(pathlib.PurePosixPath(your_windows_path))
...