我需要编写一个python脚本来汇总文本文件中的十进制数(一行,一个数字)。我写了这个剧本:
s = float()
f = open('/home/ale/file_numbers', 'r').readlines()
N = len(f)-1
for i in range(0,N):
s += float(f)
但问题出在指令s += float(f)
,因为返回的错误是:
TypeError: float() argument must be a string or a number
我无法弄清楚如何解决这个问题 有什么建议吗?
答案 0 :(得分:3)
这将返回行列表(顾名思义):
open(...).readlines()
但你可以直接迭代直线:
s = float()
f = open('/home/ale/file_numbers', 'r')
for line in f:
s += float(line)
并且,以防万一,如果您在打开后没有.close()
您的文件,您可以使用此代码:
s = float()
with open('/home/ale/file_numbers') as f:
for line in f:
s += float(line)
这是因为:
with
语句在您自动退出嵌套块后处理关闭文件,mode
的默认open()
为“r
”,因此您可以省略它,答案 1 :(得分:1)
考虑readlines
返回的内容。它不是字符串,而是字符串列表。
您需要以某种方式从文件中选择一个字符串,或者遍历所有行。
s += float(f[0])