我将一些选通信号插入到C源代码中,以获取有关每次执行的有趣信息。 目前,我会在每次执行时将信息打印在文件中。我有这样的清单:
我想要的是:
我想以有效的方式生成报告。我更喜欢使用MATLAB或Python。 用户roippi给了我一个很好的Python答案。我也有兴趣在MATLAB中做同样的事情。
任何指针?
这是我的实际输入:
答案 0 :(得分:1)
那么您是否希望将日志文件后处理到其他文件中?在python中很容易:
infile中:
prop1 thing
prop2 stuff
prop3 junk
prop1 something
prop2 whatever
蟒:
from collections import defaultdict
d = defaultdict(list)
with open('infile') as f:
for line in f:
k,v = line.strip().split()
d[k].append(v)
然后格式化输出:
for k,v in sorted(d.items()):
print('{}: {}'.format(k,'+'.join(v)))
prop1: thing+something
prop2: stuff+whatever
prop3: junk
用您想要执行的任何实际文件写操作替换print
。
答案 1 :(得分:0)
如果值是一个整数,并且你要添加属性的所有值,这是python中的另一种方式:
infile = file("input.txt", 'r')
outfile = file("output.txt", 'w')
from collections import defaultdict
props = defaultdict(int)
for line in infile:
p, v = line.split()
props[p] += int(v)
for p, v in sorted(props.items()):
outfile.write("%s: %d\n" % (p,v))
输出将被排序,但它不是一种自然的排序,你必须为此添加更多的python代码。