Как я могу нормализовать/свернуть пути или URL в Python независимым от операционной системы способом?

Я пытался использовать os.normpath для преобразования http://example.com/a/b/c/../ кому: http://example.com/a/b/ но это не работает над Windows, потому что это действительно преобразовывает наклонную черту в обратную косую черту.

5
задан SilentGhost 25 January 2010 в 09:39
поделиться

2 ответа

Вот как это сделать

>>> import urlparse
>>> urlparse.urljoin("ftp://domain.com/a/b/c/d/", "../..")
'ftp://domain.com/a/b/'
>>> urlparse.urljoin("ftp://domain.com/a/b/c/d/e.txt", "../..")
'ftp://domain.com/a/b/'    

Помните, что URLJOIN учитывает путь / каталог до последнего / - после этого имеется имя файла, если таковое имеется.

Также не добавляйте ведущих / ко второму параметру, в противном случае вы не получите ожидаемый результат.

Модуль OS.Path - зависит от платформы, но для путей файлов, используя только косые, но не-URL, которые вы можете использовать posixpath, normpath .

8
ответ дан 18 December 2019 в 10:44
поделиться

Усыновлено из модуля ОС «- OS.Path - это один из модулей PosixPath или ntpath», в вашем случае, явно используя posixpath.

   >>> import posixpath
    >>> posixpath.normpath("/a/b/../c")
    '/a/c'
    >>> 
2
ответ дан 18 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: