尽管能够通过解释器这样做,我仍然无法将列表转换为浮动脚本?

时间:2016-02-04 07:12:04

标签: python-2.7

我遇到了一个问题,我的任务是在文本文件中查找某些数字并将这些值作为浮点数返回。

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

2 个答案:

答案 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]