从文件中读取数字并进行规范化

时间:2015-11-04 22:14:16

标签: linux file python-2.7 compiler-errors

大家好,                       我想在文件中加载我的数据,如下所示:

21.4,0.266667,0,0.966667,0.166667,0.966667,0.533333,0.1,............... 

现在,我想从文件中加载它并计算规范化。我这样做:

f = open("Input.txt", "r") 
data = [line.strip() for line in f]
print data
norm = [float(i)/sum(data) for i in data]
print norm

但是,我收到了错误:

ValueError: invalid literal for float()

虽然,我在linux中直接进入python 2.7控制台,

a = [21.4,0.266667,0,0.966667,0.166667,0.966667,0.533333,0.1]
norm = [float(i)/sum(a) for i in a]
print norm

这很好用。我不知道我做错了什么。请帮助我,我是编程新手。提前谢谢!

1 个答案:

答案 0 :(得分:2)

您需要先将文件中的字符串转换为浮点数。

data = []
with open('Input.txt') as f:
    for line in f:
        data.extend([float(x) for x in line.split(',')])

norm = [x/sum(data) for x in data]