0

我正在尝试测试缓存,我需要从输出中提取信息。

我的代码如下:

import re

for line in open("test-fmath.simout_ruu_size_2"):
    if "avg_alu_power " in line:
        c = line
        print c
        c = re.sub("[^0123456789\.]","",c)
        print c

如果我这样做,我的输出是:

    avg_alu_power               18.9412 # avg power usage of alu

    18.9412

哪个是对的。但是当我的输入中有数字和句点时,即:

    il1.miss_rate                0.0612 # miss rate (i.e., misses/ref)

    1.0.0612..

所以我认为我需要另一种方法来用正则表达式解析它。

也许寻找一个 # 并解析它之前的数字或双精度数?我不知道该怎么做,虽然......

4

2 回答 2

1

您必须更具体地选择您想要的部分:

>>> re.search(r'([\d.]+)\s+#', text).group(1)
'0.0612'

假设总是有一个“#”字符

于 2013-05-05T18:21:15.973 回答
0

这个正则表达式怎么样:

re.match('.* ([0-9\.]*).*',line).groups()
于 2013-05-05T18:22:39.597 回答