Python:打开文件,读取行到列表,处理列表数据
我想处理文件 "output.log" 中的数据,然后把这些数据放到 graphdata['eth0'] 里。
我已经做到这一点了,但它只处理了第一行:
logread = open("output.log", "r").readlines()
for line in logread:
print "line", line
i = line.rstrip("\n")
b = float(i)
colors = [ (0.2, 03, .65), (0.5, 0.7, .1), (.35, .2, .45), ]
graphData = {}
graphData['eth0'] = [b]
cairoplot.dot_line_plot("./blog", graphData, 500, 500, axis=True, grid=True, dots=True, series_colors=colors)
3 个回答
0
我不太确定,但看起来你每次都在重新初始化这个数组。你能不能把它一次性放进一个大列表里呢?
0
在编程中,有时候我们会遇到一些问题,可能会让我们感到困惑。比如,有人可能在使用某个工具或者库的时候,发现它的某些功能没有按照预期工作。这时候,大家通常会去网上查找解决方案,像在StackOverflow这样的论坛上提问。
在这些讨论中,其他程序员会分享他们的经验和解决办法,帮助提问者找到问题的根源。有时候,问题可能是因为代码中的小错误,或者是对某个功能的理解不够深入。
总之,编程的过程中,遇到问题是很正常的,重要的是要学会如何寻找答案和解决方案。
logread = open("output.log", "r").readlines()
for line in logread:
print "line", line
i = line.rstrip("\n")
b = float(i)
colors = [ (0.2, 03, .65), (0.5, 0.7, .1), (.35, .2, .45), ]
graphData = {}
graphData['eth0'] = [b]
cairoplot.dot_line_plot("./blog", graphData, 500, 500, axis=True, grid=True, dots=True, series_colors=colors)
0
graphData = {}
我觉得这应该是个字典。你是这个意思吗?
如果你想要一个列表或者数组,可以用 [] 来代替 {}。之前有人说的没错。每次循环的时候,你都在把 graphData 设为 {},这样就会把之前的内容覆盖掉。
array.append(x)
会把某些东西添加到一个数组里。
如果你想在最后把所有的行都显示出来,可以在循环之前设置 graphData = [] 这样。然后在每次循环中执行
graphData.append(line).
然后在循环结束后,你可以设置 graph_data_dict = {} graph_data_dict['eth0'] = graph_data_array