【问题标题】:Python: extract floats from txt filesPython:从 txt 文件中提取浮点数
【发布时间】:2021-09-25 17:16:09
【问题描述】:

我有这个 txt 文件:

TP 0.8329 

我尝试使用以下代码在“TP”之后提取该浮点数:

def definir_operacao():
    end = 0
    oper = []
    for x in range(len(lines[0])):
        if(lines[0][x] == " "):
            end += 1
        elif(end == 1):
            oper.append(int(lines[0][x]))
    str2 = ''.join(oper)
    return str2


ci = definir_operacao()
print(ci)

但是我得到一个空变量作为响应,所以我想我做错了什么,有人可以帮助我吗?

【问题讨论】:

  • 你能包含你正在处理的完整代码吗?包括您阅读文件的部分。
  • 如果这是某种旨在通过代码读取的配置文件,请使用 python 文件、yaml、ini 或其他“代码友好”格式。如果是电子表格,请使用 pandas。读取数据是一项常见任务,因此首先要找到已经存在的闪亮工具,让您的生活更轻松

标签: python extract txt


【解决方案1】:

只做这一行:

ci = float(lines[0].split()[1])

现在:

print(ci)

愿意:

0.8329

【讨论】:

    【解决方案2】:

    您正在检查是否获得了" ",如果是,则将完全相同的" " 附加到oper。再次查看此片段:

    if(lines[0][x] == " "):
            end += 1
    elif(end == 1):
            oper.append(int(lines[0][x]))
    

    这就是为什么你的响应是空的。

    只需在" "的基础上拆分行,然后从拆分结果中取第二个值。不要忘记将其投射到浮动。这会给你你想要的。

    res = float(lines[0].split(" ")[1])
        
    

    您也可以像@U11-Forward 提到的那样使用 split(),因为默认分隔符是空格。

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 2022-01-19
      • 1970-01-01
      • 2018-09-08
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      相关资源
      最近更新 更多