我的代码中出现以下错误:
File "D:/beverages.py", line XX, in <module>
relst.append(Residents(float(value[0]),float(value[1]),str(value[2])))
ValueError: could not convert string to float: '-'
代码如下:
^{pr2}$surveydata.txt
文件包含:
-3.043296714578294 -1.8118219429417417 Pepsi
-2.934406412013738 -3.2258867426312845 Pepsi
3.750989559940674 0.6649706751908528 Coke
4.453731061614226 1.1760692786505302 Coke
-3.3141673450571307 2.7471154522861942 Coke
-1.5611978286453065 0.9748847584776836 Coke
-0.6446977323819532 -1.4945077535804119 Pepsi
-4.280039869935868 3.2099331922984433 Coke
我不明白为什么错误会抱怨一个-
字符,它不应该处理整个字段(带有符号和数字)吗?在
你的问题在于:
file1
变量只包含文件的一行(作为字符串),而不是每一行(作为字符串的集合)。这意味着for line in file1
将迭代字符串中的每个字符,而不是集合中的每个行,这就是它抱怨单个的-
字符的原因。在所以您应该将
^{pr2}$file1 = file.readline()
更改为file1 = file.readlines()
,以读取所有行:另外,特别是对于较大的文件,迭代文件本身比使用
.readlines()
更有效,因为您不会将整个文件加载到内存中。因此,最终代码应该如下所示:相关问题 更多 >
编程相关推荐