python: открытый файл, строка перевода в список, данные списка процессов

1

Я хочу обработать данные в файле "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)
Теги:
cairo

3 ответа

0
Лучший ответ
graphData = {}

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

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

array.append(x)

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

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

graphData.append(line).  

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

  • 0
    это сработало ... спасибо ..
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)
  • 0
    Была ли там разница?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню