[英]Converting group() to float or int format
这是Python的后续版本。 从文件“重新搜索”后如何打印一行的特定部分
这是初始代码,基于链接问题的公认答案:
import re
VSP = input("Номер ВСП (четыре цифры): ")
c = re.compile('(\d+\.226\.\S+)\s+\S+' + VSP)
Tunnel0_IP_VSP = re.search(c, open('OUS_IP.txt').read())
print (Tunnel1_IP_VSP.group(1))
Номер ВСП (четыре цифры): 1020
10.226.27.60
我能够在文本文件中找到请求的IP地址。
我的目标是以某种方式将字符串"10.226.27.60"
转换为允许我在数学公式中使用的格式。 例如,我想通过从原始地址的最后一个八位位组减去1得到另一个地址"10.226.27.59"
。
您可以将ipaddress
模块用于Python 3:
>>> import ipaddress
>>> ip = ipaddress.IPv4Address('10.226.27.60')
>>> ip - 1
IPv4Address('10.226.27.59')
IPv4Address
类允许算术运算符
文件: https : //docs.python.org/3/library/ipaddress.html#operators
您可以使用string
(最终得到的结果):
s = "10.226.27.60"
然后在'.'
上split
并使用list-comprehension
将零件转换为integers
:
p = [int(i) for i in s.split('.')]
最后,从最后一个元素中减去1
:
p[-1] -= 1
得到p
为:
[10, 226, 27, 59]
请注意,如果要以原始string
格式显示此列表,则可以将join
与generator-expression
:
".".join(str(i) for i in p)
#"10.226.27.60"
你可以做:
string = "10.226.27.60".split(".")
number_list = [int(number) for number in string]
print(number_list)
[10,226,27,60]您可以计算每个元素
转换回:
string_again = ".".join(str(number) for number in number_list)
print(string_again)
10.226.27.60
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.