我有一个名为“ foo.txt”的文本文件,其中包含数字列表,每行一个,例如:
0.094195
0.216867
0.326396
0.525739
0.592552
0.600219
0.637459
0.642935
0.662651
0.657174
0.683461
我现在想将这些数字读入Python列表中。我执行此操作的代码如下:
x = []
file_in = open('foo.dat', 'r')
for y in file_in.read().split('\n'):
x.append(float(y))
但这给了我错误:
ValueError: could not convert string to float
我究竟做错了什么?
编辑:
martineau评论:您也可以使用if y:
消除None
或空字符串。
原始答案:
由于您使用换行符作为分隔符,因此失败,因此最后一个元素为空字符串
您可以添加y.isdigit()
以检查y是否为数字。
x = []
file_in = open('sample.csv', 'r')
for y in file_in.read().split('\n'):
if y.isdigit():
x.append(float(y))
或者
您可以更改read().split("\n")
为readlines()
或者
从y删除开头/结尾字符。它可以处理多余的空格
for y in file_in:
trimed_line = y.strip() # leading or trailing characters are removed
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句