将列表中的字符串对象转换为浮点数

时间:2017-11-21 06:31:15

标签: floating-point valueerror typecasting-operator

def get_info(file_object):
    file_data = []
    opened_file = open(file_object, "r")
    for line in opened_file:
        line = line.split(",")
        file_data.append(line)
    opened_file.close()
    return file_data

def get_avg_mag(file_data):
    sum = 0
    for line in file_data:
        mag = line[4]
        mag = float(mag)
        sum += mag
    print(sum / len(file_data)) 

当上面的代码运行时,我收到一条错误消息

  

“ValueError:无法将字符串转换为float:”

我不知道为什么

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为当您从文件中读取行时,您还会在每行中获得一个新的行字符。所以你的最后一个元素包含一个\ n及其十进制值,因此ValueError:无法将字符串转换为float。

尝试通过添加line = line.rstrip()来条带化新行 -

for line in opened_file:
    line = line.rstrip()
    line = line.split(',')
    file_data.append(line)