2017-06-04 2 views
0

Ich habe versucht, Python csv zu verwenden TXT-Datei dann präsentiert in Diagramm lesen mit Python matplotlibLesetextdatei und Darstellung von Daten in Python matplotlib

einfach von Daten in Textdatei:

261 P 0.18 0 834 64627 0 768 0 320 834 64627 0 768 0 320 (radio 1.17%/1.17% tx 0.00%/0.00% listen 1.17%/1.17%) 

und diese Python-Skript zum Lesen der Datei, aber es funktioniert nicht und keine Fehlermeldung.

import csv 
import matplotlib.pyplot as plt 

# for P lines 
#0-> str, 
#1 -> clock_time(),2-> P, 3->rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1], 4-> seqno, 
#5 -> all_cpu,6-> all_lpm,7-> all_transmit,8-> all_listen,9-> all_idle_transmit,10-> all_idle_listen, 
#11->cpu,12-> lpm,13-> transmit,14-> listen, 15 ->idle_transmit, 16 -> idle_listen, [RADIO STATISTICS...] 


from collections import defaultdict 
cpuOverTime = defaultdict(list) 

with open('loglistener.txt', 'rb') as f: 
    reader = csv.reader(f,delimiter=' ') 
    for row in reader: 
     if row[2] is 'P': 
      cpuOverTime[row[3]].append(row[11]) 

for i in cpuOverTime: 
    plt.plot(cpuOverTime[i]) 
plt.show() 
########## 
+0

Meintest du 'wenn Zeile [1] ist 'P':'? Offsets sind von 0, so dass der 2. Artikel bei Offset 1 ist. – FujiApple

Antwort

0

In Python, wie bei den meisten Programmiersprachen üblich ist, beginnt Offsets bei 0 können wir nicht 1.

Aus Ihren Beispieldaten sehen, dass P das zweite Leerzeichen getrenntes Element in der Reihe ist und daher hat Index von 1:

with open('loglistener.txt', 'rb') as f: 
    reader = csv.reader(f,delimiter=' ') 
    for row in reader: 
     if row[1] is 'P': 
      cpuOverTime[row[3]].append(row[11]) 
:

Offset 0 | 1 | 2 | 3 | 4 | 5  | 6 
Row  261 | P | 0.18 | 0 | 834 | 64627 | 0 

das Problem einfach zu beheben, den Index 1 ändern 210

Ich habe nicht überprüft, aber Sie haben wahrscheinlich das gleiche Problem mit row[3] und row[11]

+0

funktioniert jetzt gut es gab zwei Werte bevor PI sollte 00: 02.396 \t ID: 8 \t 261 P 0.18 0 834 64627 0 768 0 320 834 64627 0 768 0 320 (Radio 1.17%/1.17% tx 0.00%/0.00% hören 1.17%/1.17%) –

Verwandte Themen