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
Liste sortieren
- __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
@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.
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ß
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ß
- __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.
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