Eine txt datei zeilenweise einlesen und vergleichen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@Sirius3: Habe nochmal in die Doku geschaut und groupby scheint tatsächlich nichts zu cachen, sowie bei dieser Anwendung dem Dekorator ziemlich zu ähneln; der gefällt mir dennoch gut und manchmal kann es eben doch NIH sein ...
python-fan
User
Beiträge: 11
Registriert: Donnerstag 4. Januar 2018, 14:38

snafu hat geschrieben:
python-fan hat geschrieben:Wenn man in einer anderen Programmiersprache programmiert und eine anderen Syntax gewohnt ist, kann man auch gewisse Sachen übersehen oder man braucht etwas, um es zu verstehen.
Das ist schon klar. Aber Funktionen und ihr Sinn, welcher sich normalerweise aus ihrem Namen ergibt, sind dir doch wohl bekannt.

Wenn du an bestimmten Stellen nicht weiterkommst, dann frag ruhig. Die groupby()-Doku hatte ich ja bereits verlinkt. Kannst bei Bedarf aber gerne eine Erklärung dazu auf Deutsch haben. Das tuple-map-Konstrukt, welches ich zum Parsen des Wertes nachträglich editiert hatte, könnte auch nicht jedem geläufig sein...

Code: Alles auswählen

if msg_type == 'I':
            start = line.index('from') + 5
            stop = line.index('-', start)
            sensor_id = line[start:stop]
        if msg_type == 'A':
            start = line.index('"') + 1
            stop = line.index('"', start)
            raw = line[start:stop]
            parts = raw.split(',')
            value = tuple(map(int, parts))

D.h. also dass du als index from +5 nimmst d.h. du nimmst aus dem muster from 6e400002 --> 0002 bis zum - ? Verstehe ich das richtig? Damit sparst du dir den ganzen Wert 6e400002 zu nehmen sondern nur ein Teil.

Vielen Dank auch an alle anderen, ich lerne viel neues dazu hier.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@python-fan: deshalb mag ich die Lösung mit »index« nicht, weil sie völlig unverständlich ist. Das erste Index sucht das Wörtchen 'from', also die Position des ›f‹, da muß man noch die 4 Zeichen und das Leerzeichen, also 5 weiter um an der Position der ›6‹ zu landen.
Antworten