我使用的是 python 3.5 并且有一个如下所示的网络地址字符串:
tcp://10.1.2.3:45678
我想解析这个字符串并提取协议(protocol)、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'
