python - 使用 Python 删除 IP 地址中的前导零

标签 python python-2.7 python-3.x ip-address leading-zero

删除 IP 地址中不必要的零:

100.020.003.400  ->  100.20.3.400
001.200.000.004  ->  1.200.0.4
000.002.300.000  ->  0.2.300.0   (optional silly test)

我的尝试并不适用于所有情况:

import re
ip = re.sub('[.]0+', '.', ip_with_zeroes)

对于其他语言也有类似的问题:

请提供适用于 Python v2 和 v3 的解决方案。

最佳答案

使用 netaddr library然后它有 ZEROFILL 标志:

import netaddr

ip = "055.023.156.008"

no_zero_ip = netaddr.IPAddress(ip, flags=netaddr.ZEROFILL).ipv4()

# IPAddress('55.23.156.8')

如果您不想要 IPAddress 类型,您可能希望将 no_zero_ip 结果更改为字符串或其他内容

关于python - 使用 Python 删除 IP 地址中的前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44852721/

相关文章:

Python - 在文本中搜索出现

python - Python 中的二维关联数组

python-3.x - Discord 接收音频

python - 将Dataframe写入ODS格式

python - "Transform"Numpy 数组 : Move Dimension

python - 如何获取MySQL分组内的计数

python - 在 python 2.7 中导入 Pandas 时出现 "ValueError: unknown locale: UTF-8"

python - 运行 Scrapy 但出现错误 : No module named _util

python - 如何检查输入是否为二进制格式(1 和 0)?

python - 如何避免在压缩文件时创建子文件夹?