Skip to main content
 首页 » 编程设计

python之解析网络地址字符串

2025年05月04日32yyy_WW

我使用的是 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'