Seite 1 von 1

doppelte Werte in einer text file finden

Verfasst: Sonntag 28. Juni 2020, 15:27
von naomii2608
Hallo,

Ich versuche mich seit einigen Tagen an einem Programm, ich komme aber an der schwierigsten Stelle nicht weiter. Der input sieht in etwa so aus:

Sensor: Uhrzeit: Kennzeichen:
1 13:00:00 45-NK-JX
1 13:00:03 DX-89-EH
1 13:00:09 JV-20-EL
2 13:00:10 RW-MJ-73
1 13:00:11 ZS-24-74
2 13:00:14 07-SD-12
2 13:00:18 GX-62-38
1 13:00:19 09-PQ-23
2 13:00:20 45-NK-JX
1 13:00:20 NG-24-DB
2 13:00:21 DX-89-EH
2 13:00:22 JV-20-EL
2 13:00:30 ZS-24-74
1 13:00:33 QW-23-56
2 13:00:35 09-PQ-23
2 13:00:40 NG-24-DB

Es geht darum mithilfe eins dictionaries die Paare der Kennzeichen heraus zu suchen, um mit ihnen zu rechnen. Jedoch schaffe ich es nicht, die Paare zusammen zu suchen.
Bisher sieht mein code so aus:

Code: Alles auswählen


file = open("traffic.input.txt").read()
lines = file.splitlines()
traffic = {}
for line in lines:

    if line != "50":
        row = line.split('\t')
        sensor = row[0]
        times = row[1]
        license_plate = row[-1]

        if license_plate in traffic:
            traffic[license_plate] = times
            print(traffic)

Re: doppelte Werte in einer text file finden

Verfasst: Sonntag 28. Juni 2020, 16:34
von __deets__
Waum benutzt du nicht das csv-Modul oder pandas? Und warum pruefst du auf "50" in den Zeilen?

Zum zaehlen gibt es collections.Counter

Re: doppelte Werte in einer text file finden

Verfasst: Sonntag 28. Juni 2020, 17:09
von Sirius3
Zum Lesen gibt es das csv-Modul.
Dateien die man öffnet sollte man auch wieder schließen, am besten durch das with-Statement.
Du hast nicht verraten, was du berechnen willst. Ich vermute mal du brauchst die Uhrzeiten von Sensor 1 und 2. Also brauchst du ein verschachteltes Wörterbuch. Erste Ebene das Kennzeichen und drunter ein Wörterbuch mit Sensornummern.

Re: doppelte Werte in einer text file finden

Verfasst: Montag 29. Juni 2020, 07:56
von DeaD_EyE
Nach welchen doppelten Werten suchst du denn?
Definiere doppelt.

1) Kennzeichen
2) Sensor + Kennzeichen
3) Sensor + Uhrzeit + Kennzeichen (was in der Realität unmöglich ist)

Re: doppelte Werte in einer text file finden

Verfasst: Montag 29. Juni 2020, 09:48
von __blackjack__
@DeaD_EyE: Ad 3) Das hängt von den Variablen d Abstand zwischen den Sensoren, v Geschwindigkeit der Fahrzeuge, und r Auflösung der Zeiterfassung ab. 😜

Re: doppelte Werte in einer text file finden

Verfasst: Montag 29. Juni 2020, 10:04
von __blackjack__
Nach den Nummernschildern sollte man im Wörterbuch eventuell nicht mit der nächsten Ebene mit Sensornummern weitermachen, denn ich denke für die Weiterverarbeitung ist beispielsweise eine Liste mit Tupeln aus Zeit und Sensornummer eventuell praktischer, die man als nächsten Schritt dann mal sortieren könnte oder zumindest auf sortiert sein testen könnte wenn die Eingabedaten das hergeben sollten und man das noch nicht vorher getestet hat.

Hier kommt es dann auch zu weiteren Fragen welche Fälle alle abgedeckt werden sollen. Was passiert wenn das Fahrzeug vor Beginn der Aufzeichnung schon auf der Strecke war oder nach Ende der Aufzeichnung immer noch auf der Strecke ist? Erkennt man das wenn es mehr als eine Durchfahrt gibt? Gibt es Fahrzeuge die auf der Strecke wenden?

Selbst wenn es solche Sonderfälle nicht gibt, also nicht geben dürfte, wie soll das Programm damit umgehen wenn die trotzdem in den Daten vorkommen? Einfach falsche Sachen ausrechnen? Abbrechen? Eine Warnung ausgeben und unmögliche Werte ignorieren?