Я использую python 3.5 и имею строку сетевого адреса, подобную следующей:
tcp://10.1.2.3:45678
Я хочу проанализировать эту строку и извлечь протокол, IP-адрес и номер порта.
Я знаю, что могу сделать это очень легко с помощью разбиения строки или регулярного выражения, однако мне было интересно, есть ли пакет или модуль python, который это делает. Я уверен, что для этих строк есть спецификация, которая их определяет, поэтому меня интересует модуль python вместо использования регулярных выражений или синтаксического анализа строк.






Вы ищете urllib.parse.urlparse:
In [1050]: import urllib
In [1051]: urllib.parse.urlparse('tcp://10.1.2.3:45678')
Out[1051]: ParseResult(scheme='tcp', netloc='10.1.2.3:45678', path='', params='', query='', fragment='')
In [1052]: url = urllib.parse.urlparse('tcp://10.1.2.3:45678')
In [1053]: url.scheme
Out[1053]: 'tcp'
In [1054]: url.netloc
Out[1054]: '10.1.2.3:45678'
In [1055]: host, _, port = url.netloc.partition(':')
In [1056]: host
Out[1056]: '10.1.2.3'
In [1057]: port
Out[1057]: '45678'
@ASaxena Рада, что смогла помочь :)
Большое спасибо. Это решение сработало отлично.