Python: فتح الملف ، خط التغذية إلى القائمة ، بيانات قائمة المعالجة

StackOverflow https://stackoverflow.com/questions/2773416

  •  03-10-2019
  •  | 
  •  

سؤال

أرغب في معالجة البيانات الموجودة في الملف "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)
هل كانت مفيدة؟

المحلول

graphData = {}

أعتقد أن هذا القاموس. هل هذا ما تريده؟

إذا كنت تبحث عن قائمة/صفيف ، يمكنك استخدام [] بدلاً من {}. ما قاله ملصق سابق يبدو صحيحا. في كل مرة من خلالك ، تقوم GraphData = {} وبالتالي كتابة أي شيء من الماضي.

array.append(x)

سوف يلحق بشيء إلى صفيف.

إذا كنت تريد عرض جميع الخطوط كلها بسعادة في النهاية ، فيمكنك تعيين GraphData = [] قبل الحلقة. ثم في كل مرة من خلال الحلقة تفعل

graphData.append(line).  

ثم بعد الحلقة ، يمكنك تعيين Graph_data_dict = {} graph_data_dict ['eth0'] = graph_data_array

نصائح أخرى

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)

لست متأكدًا تمامًا ، يبدو أنك تعيد تثبيت الصفيف في كل مرة. هل يمكنك إطعامها في قائمة واحدة كبيرة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top