【问题标题】:How to get floats from text file in python?如何从python中的文本文件中获取浮点数?
【发布时间】:2017-10-17 01:38:31
【问题描述】:

您好,我是 python 新手,我有一个文本文件 .txt,其结构如下:

Text1     31332.22342
Text2     293023.32323
Text3     32332.32323

将这些数字放入数组的最简单方法是什么?干杯!

【问题讨论】:

    标签: python arrays python-2.7 file


    【解决方案1】:

    您可以读取文件并将其拆分为列表,然后遍历列表并尝试转换为浮点数,如果成功则将其添加到浮点数列表中。像下面这样:

        with open('file.txt', 'r') as f:
            data = f.read().split()
            floats = []
            for elem in data:
                try:
                    floats.append(float(elem))
                except ValueError:
                    pass
            print floats
    

    输出:

    [31332.22342, 293023.32323, 32332.32323]
    

    【讨论】:

    • 也许考虑只捕获ValueError,因为当float() 失败时这是预期的。现在所有其他错误也会被忽略。
    • 为什么要拆分文件?为什么不只迭代行?
    • 谢谢,帮了大忙!
    • @Mark 正如 Christian 所说,你可能只想抓住 ValueError 而不是一般的 except
    【解决方案2】:

    您也可以使用numpy genfromtxt 函数。像这样:

    text_file.txt

    Text1     31332.22342
    Text2     293023.32323
    Text3     32332.32323
    

    python 外壳

    >>> import numpy as np
    >>> numbers = np.genfromtxt('text_file.txt', usecols=1 )
    

    输出

    [  31332.22342  293023.32323   32332.32323]
    

    【讨论】:

    • 这不是读入文本文件中的所有数字吗?由于文件很大,我想避免这种情况。
    【解决方案3】:

    要对您的数据类型进行属性验证,请尝试以下操作:

    import numpy as np
    data = np.genfromtxt("test.txt", usecols=1, dtype=float)
    

    输出:

    [  31332.22342  293023.32323   32332.32323]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多