python中最好的方法是从文本文件中的数据列中提取特定信息

时间:2016-06-27 16:50:08

标签: python

我目前有多个带有两列数据的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的新手,所以我很感激有关如何做到这一点的建议。

1 个答案:

答案 0 :(得分:2)

您正在尝试在字符串列表上调用float()。相反,在单个字符串上调用它:

parts = [float(item) for item in line.split()]