将0添加到hostnam

2024-04-29 23:14:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我的文件包含要转换为主机名的IP地址。除了最后三个八位字节外,IP地址是相同的。例如:

192.168.38.8
192.168.38.9
192.168.38.10

我的python脚本中有以下代码,用以最后八位字节结尾的主机名替换IP地址。你知道吗

 hostname = re.sub('192.168.38.','Host-Name',lm.group(4))

结果如下:

Host-Name8
Host-Name9
Host-Name10

如何使一位数的八位字节有一个前导零?期望输出为:

Host-Name08
Host-Name09
Host-Name10

Tags: 文件代码namere脚本host结尾group
2条回答

您可能会发现使用split()更容易,如下所示:

for ip_addr in ["192.168.38.8", "192.168.38.9", "192.168.38.10"]:
    print "Host-Name{:02}".format(int(ip_addr.split('.')[3]))

这会给你:

Host-Name08
Host-Name09
Host-Name10

re.sub未正确使用。你知道吗

documentation for ^{},您可以传递一个字符串或替换函数,在找到匹配项时返回字符串。你知道吗

Notice: You can use any of the methods in answers to questions in the duplicate flags to pad single digits.

def replace_ip(match):
    last_octet = match.group(1)

    return "".join((
        'Host-Name',
        last_octet.zfill(2)
    ))


re.sub(r'192.168.38.(\d+)', replace_ip, ips_from_file)

相关问题 更多 >