python: открытый файл, строка перевода в список, данные списка процессов - PullRequest
1 голос
/ 05 мая 2010

Я хочу обработать данные в файле "output.log" и передать их в графические данные ['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 голосов
/ 05 мая 2010

Не совсем уверен, но похоже, что вы каждый раз заново запускаете массив.Вы можете накормить его одним большим списком?

0 голосов
/ 05 мая 2010
graphData = {}

Я считаю, что это словарь. Это то, что вы намеревались?

Если вы ищете список / массив, вы можете использовать [] вместо {}. То, что сказал предыдущий плакат, звучит правильно. Каждый раз, когда вы устанавливаете graphData = {} и, следовательно, переписываете что-либо из прошлого.

array.append(x)

добавит что-то в массив.

Если вы хотите, чтобы в конце все строки отображались счастливо, вы можете установить graphData = [] перед петлей. Затем каждый раз через цикл делать

graphData.append(line).  

Тогда после цикла вы можете установить graph_data_dict = {} graph_data_dict ['eth0'] = graph_data_array

0 голосов
/ 05 мая 2010
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)
...