我遇到了一个问题,我的任务是在文本文件中查找某些数字并将这些值作为浮点数返回。
import re
fname = raw_input("Enter file name: ")
if len(fname) < 1 : fname = "ip.txt"
fh = open(fname)
for line in fh:
numbers = re.findall('^92.[0-9.]+', line)
if len(numbers) != 1 : continue
num = [float(i) for i in numbers]
print num
我得到一个追溯如下:
追踪(最近一次呼叫最后一次):
File ".\test1.py", line 9, in <module> num = [float(i) for i in numbers]
ValueError: invalid literal for float(): 92.43.17.152
ip.txt文件只是一个文本文件,每行有一个IP地址:
93.77.231.193
答案 0 :(得分:0)
您的文本文件中看起来有92.43.17.52(以92开头),它与您要搜索的正则表达式匹配。然后您的代码尝试将其转换为浮点失败,因为浮点数只能有一个。在他们中。您正在寻找什么数字?
答案 1 :(得分:0)
if
numbers = ['192.168.1.1']
num = [int(i) for i in numbers[0].split('.')]
num = [192,168,1,1]