python:打开文件,列表的供稿行,处理列表数据

时间:2010-05-05 13:06:24

标签: python cairo cairoplot

我想处理文件“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)

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)

答案 1 :(得分:0)

不完全确定,看起来你每次都重新启动数组。你能把它放在一个大清单中吗?

答案 2 :(得分:0)

graphData = {}

我相信这是一本字典。那是你的意图吗?

如果您正在寻找列表/数组,可以使用[]而不是{}。以前的海报说的听起来是正确的。每次通过你设置graphData = {},因此覆盖过去的任何东西。

array.append(x)

会将某些内容附加到数组中。

如果您希望所有线条都能在最后显示,那么您可以设置     graphData = [] 在循环之前。然后每次循环执行

graphData.append(line).  

然后在循环之后你可以设置     graph_data_dict = {}     graph_data_dict ['eth0'] = graph_data_array