Я анализирую URL-адреса следующим образом
>>> from urllib.parse import urlparse
>>> urlparse('http://foo.bar/path/to/heaven')
ParseResult(scheme='http', netloc='foo.bar', path='/path/to/heaven', params='', query='', fragment='')
Предположим, у меня есть URL-адрес с неправильным путем с повторяющимся /
следующим образом:
>>> x = urlparse('http://foo.bar/path/to/////foo///baz//bar'))
ParseResult(scheme='http', netloc='foo.bar', path='/path/to/////foo///baz//bar', params='', query='', fragment='')
Как видите, x.path
по-прежнему содержат повторяющиеся косые черты, я пытаюсь удалить их, поэтому я попытался разделить, зациклить и заменить следующим образом:
>>> newpath = x.path.split('/')
['', 'path', 'to', '', '', '', '', 'foo', '', '', 'baz', '', 'bar']
>>> for i in newpath:
if i == '':
newpath.remove('')
>>> '/'.join(newpath)
'/path/to/foo/baz/bar'
Что дает желаемый результат, но я думаю, что это решение неэффективно и тра sh. Как мне сделать это лучше?