提取特定ch后的浮点数

2024-09-30 22:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的问题,我想得到所有单位的数字后,符号相等,但我不知道如何去做。 我所有的数字都在一个文件中,我把这个文件放在python的一个列表中,所以我想得到等号之后的数字。 例如:“平均帧速率=22.5566” 我要22.5566浮点数。 谢谢你的帮助。你知道吗

这是一个脚本,将计算一个文件的平均帧速率值.txt

我试过这个:

l = []

with open("floatnumber.txt", 'r') as f:
    csv_f = csv.reader(f, delimiter=',')

    for row in csv_f:
        l.append(log(float(row[1])))

print (l)

但不起作用

我什么都没有。。你知道吗

有一个.txt文件:

AnimatonPath completed in 0.0455575 seconds, completing 1 frames,
             average frame rate = 21.9503
AnimatonPath completed in 0.0691637 seconds, completing 1 frames,
             average frame rate = 14.4585' 

我只想要等号后面的浮点数


Tags: 文件csvintxtframes速率数字frame
2条回答

您还可以使用regex,这可能是解决问题的更健壮的方法

with open("floatnumber.txt", 'r') as f:
    csv_f = csv.reader(f, delimiter=',')

    for row in csv_f:
        results = re.findall("=\s*?(\d+\.\d+|\d+)", row[2])
        l.append(log(float(results[0])))
    print (l)

别忘了使用

import re

使用split()

l = []

with open("floatnumber.txt", 'r') as f:
    csv_f = csv.reader(f, delimiter=',')

    for row in csv_f:
        l.append(row.split('= ')[1])

print (l)

这将采用分裂中的第二个参数,换句话说,等号后面的任何参数。您可能还需要删除新行:

for row in csv_f:
        l.append(row.split('= ')[1].strip('\n')

相关问题 更多 >