我目前有多个带有两列数据的txt文件:波数和强度:
500.21506 0.00000
500.45613 0.00000
500.69720 0.00000
500.93826 0.00000
501.17933 0.00000
501.42040 0.00000
501.66147 0.00000
501.90253 0.00000
502.14360 0.00000
502.38467 0.00000
502.62574 0.00000
502.86680 0.00000
503.10787 0.00000
我需要编写一个代码,可以在最小和最大波数之间提取强度值,并且只打印与输出文件中列表中的强度相对应的强度。但是,我无法在列表和浮点类型之间切换。这就是我所拥有的:
with open(files[count], 'r') as g:
for line in g:
parts = line.split()
parts = float(parts)
if parts[0] >= lowwav and parts[0],= highwav:
f.write(parts[1])
f.write('\n')
else: break
目前parts
是一个列表类型,但是当我尝试强制它进行浮动以进行比较(parts = float(parts)
)时,我收到此错误:
TypeError: float() argument must be a string or a number
我是python的新手,所以我很感激有关如何做到这一点的建议。
答案 0 :(得分:2)
您正在尝试在字符串列表上调用float()
。相反,在单个字符串上调用它:
parts = [float(item) for item in line.split()]