2016-05-09 5 views
2

Я под Windows, но мне нужно обработать некоторый путь Unix-стиль, такие как:Есть ли способ указать платформу для os.path?

In[4]: os.path.abspath('/prj/vl') 
Out[4]: 'C:\\prj\\vl' 

, который не является правильным выходом я хочу. Поэтому мне интересно, есть ли способ, которым я могу заставить os.path работать так, как он находится под Unix? То есть Я хочу посмотреть, есть ли что-то похожее на: os.path.setos('Linux')

+0

Try 'os.path.abspath ('PRJ/Vl')' – heinst

ответ

4

os.path - это другой модуль в зависимости от вашей ОС. Как documented в документации os.path, вы можете явно импортировать версию для путей Unix-стиле:

import posixpath 

Другие версии являются ntpath для путей Windows, macpath для старомодных путей MacOS и os2emxpath для OS/2 EMX пути.

1

Вы можете использовать posixpath вместо os.path - на самом деле, os.path использует либо posixpath или ntpath в зависимости от системы.

2

Поскольку разные операционные системы имеют разные соглашения о названии пути, в стандартной библиотеке python имеется несколько версий этого модуля. Модуль os.path всегда является модулем пути, подходящим для операционной системы. Python работает и, следовательно, может использоваться для локальных путей. Однако вы также можете импортировать и использовать отдельные модули, если вы хотите манипулировать путем, который всегда находится в одном из разных форматов. Все они имеют один и тот же интерфейс:

`posixpath` for UNIX-style paths 
`ntpath` for Windows paths 
`macpath` for old-style MacOS paths 
`os2emxpath` for OS/2 EMX paths 

ссылочный: https://docs.python.org/2/library/os.path.html

+2

Этот ответ 1: 1 скопирована с https: // Docs. python.org/2/library/os.path.html, я думаю, что это должно быть указано – CherryDT

+0

. сделанный –

Смежные вопросы