Seite 1 von 1

Liste sortieren

Verfasst: Mittwoch 28. September 2022, 19:49
von mmk62
Guten Abend zusammen,

ich würde gerne eine Textdatei in einer Liste auslesen lassen und diese dann anschließend sortieren. Als Ausgabe werden mir bestimmte y und z Werte angeben. Diese würde ich gerne in y und z Werte in Tabellenform ordnen. Da ich noch ein Anfänger bin, tue ich mich da leider etwas schwer. Ich weiß bereits, dass man mit der sort-Funktion Änderung vornehmen kann. Aber die gewünschte Änderung ist mir leider nicht gelungen. Ich hoffe jemand kann mir behilflich sein. Ich habe bereist folgenden Basiscode erstellt:

with open("test_ViperData.txt", "r") as tf:
values = list(tf)
values.sort()
print(values)

Die Ausgabe sieht ungefähr so aus:
['verzahnen/hart/data b\'{"yPosAct":182.419356,"zPosAct":138.712605}\'\n', 'verzahnen/hart/data b\'{"yPosAct":182.424702,"zPosAct":138.70974}\'\n', 'verzahnen/hart/data b\'{"yPosAct":182.43007,"zPosAct":138.706864}\'\n', 'verzahnen/hart/data ...

Viele Grüße

Re: Liste sortieren

Verfasst: Mittwoch 28. September 2022, 20:00
von sparrow
Ist das nicht das, was du schon hier gefragt hast?

Re: Liste sortieren

Verfasst: Mittwoch 28. September 2022, 21:18
von /me
[Und wer hat die Daten in diesem Katastrophenformat geschrieben statt irgendetwas ordentlich strukturiertes zu benutzen?

Re: Liste sortieren

Verfasst: Mittwoch 28. September 2022, 21:28
von __blackjack__
Genau. Bevor man das einliest, sollte man dringend erst einmal das Programm heile machen das solche Daten schreibt, damit das nie wieder vorkommt.

Re: Liste sortieren

Verfasst: Mittwoch 28. September 2022, 21:31
von Sirius3
@mmk62: die Stringrepräsentation eines Bytes-Objekt ist nicht dazu gedacht, dass man sie in eine Datei schreibt. Wie schon im anderen Thread geschrieben, solltest Du msg.payload per json.loads decodieren und dann die Zahlen gleich in ein passendes Format bringen, statt sie einfach so in die Text-Datei zu schreiben.

Re: Liste sortieren

Verfasst: Donnerstag 29. September 2022, 11:00
von mmk62
Hallo zusammen,

erstmal vielen Dank für die ganzen Rückmeldungen.
@Sirius3 habe für die Dekodierung folgendes verwendet:
def on_message(client, userdata, msg):
topic = msg.topic
m_decode = str(msg.payload.decode())
print (m_decode)

Bin aber nicht auf das gesuchte Resultat gekommen. Hast du eine Idee, woran es gelegen hat?

Gruß

Re: Liste sortieren

Verfasst: Donnerstag 29. September 2022, 11:04
von __blackjack__
@mmk62: Ja hat er, das er auch geschrieben. Da steht namentlich welche Funktion, die in Deinem Code offensichtlich nicht steht.

Da ist der `str()`-Aufruf übrigens unnötig, denn der Sinn von `bytes.decode()` ist ja gerade das in eine Zeichenkette zu dekodieren.

Und Du könntest den Quelltext auch im Beitrag in Code-Tags setzen, damit die Einrückung erhalten bleibt.