Python如何将文件数据转换为浮点数据

时间:2015-06-15 02:52:47

标签: python file floating-point

我正在尝试将文件中的数据转换为浮点数。这是一个非常大的文件。它不会让我转换它因为它说它是一个列表。我该如何解决这个问题?:

    File = open(filename,'r')
    for line in File:
        Data = File.readlines()
        for line in Data:
                numData = float(Data)
    File.close()

2 个答案:

答案 0 :(得分:0)

for line in Data:
    numData = float(Data)

问题出在哪里。您在列表float()上而不是在Data元素上调用line

顺便说一下,当你不必要时,你似乎在文件上循环两次。您声明File,然后迭代它,并且对于每次迭代,您重新读取它 - 并再次迭代它。你应该做更像这样的事情:

with open(filename, 'r') as file:
    for line in file:
        numData = float(line)

当然,我怀疑你真的是想每次都设置numData(根据PEP8,IIRC应该被称为num_data)。但是,我不知道它的用途是什么,因为变量名称不清楚,所以我不能告诉你应该做什么。如果它是一个列表,你可能意味着这样的事情:

with open(filename, 'r') as file:
    for line in file:
        num_data.append(float(line))

请注意,我已将numData更改为num_data

答案 1 :(得分:0)

这是一种方法:

file_lines = [float(ln.rstrip()) for ln in open(filename)]