Я пытался использовать os.normpath
для преобразования http://example.com/a/b/c/../
кому: http://example.com/a/b/
но это не работает над Windows, потому что это действительно преобразовывает наклонную черту в обратную косую черту.
Вот как это сделать
>>> 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
.
Усыновлено из модуля ОС «- OS.Path - это один из модулей PosixPath или ntpath», в вашем случае, явно используя posixpath.
>>> import posixpath
>>> posixpath.normpath("/a/b/../c")
'/a/c'
>>>