我正在使用python 3.5并具有如下所示的网络地址字符串:
tcp://10.1.2.3:45678
我想解析此字符串并提取协议,IP地址和端口号。
我知道我可以使用字符串拆分或正则表达式很容易地做到这一点,但是我想知道是否有Python包或模块可以做到这一点。我确定这些字符串有一个定义它们的规范,因此我对python模块感兴趣,而不是使用正则表达式或字符串解析。
答案 0 :(得分:5)
您正在寻找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'