首页 > 解决方案 > 从输入文件将字符串转换为浮点数时遇到问题

问题描述

我正在尝试使用以下python代码将文件中的一些浮动值填充到元组中:

with open(filename, 'r') as file:

    i=0
    lines = file.readlines()            
    for line in lines:
        if (line != None) and (i != 0) and (i != 1):        #ignore first 2 lines
            splitted = line.split(";")

            s = splitted[3].replace(",",".")

            lp1.heating_list[i-2] = float(s)    
         i+=1   

这些值来自一个 .csv 文件,其中的行如下所示:

MFH;0:15;0,007687511;0,013816233;0,023092447;

问题是我得到:

lp1.heating_list[i-2] = float(s)

ValueError: could not convert string to float: 

而且我不知道出了什么问题。请照亮我。

标签: pythonstringtypesnumbersdouble

解决方案


这可能意味着所说的。您的变量s是一个不是浮点数的字符串。您可以尝试添加此代码段以打印/查找有问题的字符串。

try:
    lp1.heating_list[i-2] = float(s) 
except ValueError:
    print("tried to convert {} on line {}".format(s, i))

另请参阅类似问题:https ://stackoverflow.com/a/8420179/4295853


推荐阅读