def read_numbers(file_path):
result = []
with open(file_path, 'r') as f:
for line in f:
numbers = line.split()
for number in numbers:
try:
result.append(float(number))
except ValueError:
pass
return result
该函数读取指定文件中的内容,并将内容按行分割为一个字符串列表。然后,该函数再次将每一行字符串通过split方法以空格为分隔符进行切割,以此找到其中的所有数字,并将其转换为浮点数并添加到结果列表中。如果某个字符串无法转换为浮点数,则会抛出ValueError异常,此时该字符串会被忽略。
示例使用:
numbers = read_numbers('test.txt')
print(numbers)
其中test.txt
是待读取文件的路径,其内容可能如下所示:
1.23 45 6.78
90.1 -2e-3 yy
上述示例会输出如下内容:
[1.23, 45.0, 6.78, 90.1, -0.002]
其中,由于中间存在无法转换为浮点数的 yy
,因此并未被添加到结果列表中。