Liste sortieren

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.
Antworten
mmk62
User
Beiträge: 10
Registriert: Freitag 23. September 2022, 13:09

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
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Ist das nicht das, was du schon hier gefragt hast?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

[Und wer hat die Daten in diesem Katastrophenformat geschrieben statt irgendetwas ordentlich strukturiertes zu benutzen?
Benutzeravatar
__blackjack__
User
Beiträge: 13099
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Genau. Bevor man das einliest, sollte man dringend erst einmal das Programm heile machen das solche Daten schreibt, damit das nie wieder vorkommt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Sirius3
User
Beiträge: 17745
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
mmk62
User
Beiträge: 10
Registriert: Freitag 23. September 2022, 13:09

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ß
Benutzeravatar
__blackjack__
User
Beiträge: 13099
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten