2016-04-21 3 views
3

Как я мог легко извлечь имя хоста из мерзавца URL как ssh://[email protected]:3333/org/repo.gitРазбирайте git-адрес, например 'ssh: //[email protected]: 3333/org/repo.git'?

u = urlparse(s) 

дает мне

ParseResult(scheme='ssh', netloc='[email protected]:3333', path='/org/repo.git', params='', query='', fragment='') 

, что означает, что netloc находится ближе всего к тому, что я хочу, и это оставляет разочарование объем работы мне ,

Должен ли я сделать

u.netloc.split('@')[1].split(':')[0] 

или есть библиотека, которая обрабатывает его лучше?

ответ

7

Возвращенного ParseResult имеет hostname атрибут:

>>> urlparse('ssh://[email protected]:3333/org/repo.git').hostname 
'gitlab.org.net' 
+0

По какой-то причине, Документы для ParseResult не содержит информации о ParseResult.hostname. Однако https://docs.python.org/2.7/library/urlparse.html#module-urlparse делает. – cowlinator