Unterstützung

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
Orion
User
Beiträge: 5
Registriert: Mittwoch 31. Januar 2018, 20:04

Hallo Gemeinde,

habe eine Vorstellungsecke gesucht jedoch keine gefunden deswegen hier ein paar Infos zu mir :

Name : David
Wohnort : Neustadt an der Weinstraße RLP
Alter : 28
Beruf : Techniker für Automatisierungstechnik
Phyton Version : Phyton36+matplotlib+numpy+pandas+PIL+tkinter


Phyton war nie teil meiner Ausbildung.
Selbst habe ich vor ca. einem halben Jahr privat damit angefangen zu programmieren, deshalb würde ich mich selbst eher als Frischling bezeichnen.

Bisher half mir mein Buch:
Python 3: Das umfassende Handbuch: Sprachgrundlagen, Objektorientierung, Modularisierung Gebundene Ausgabe – 27. Juli 2015
spielend zu lernen und auch Projekte zu bewerkstelligen.
Ein Blick ins Internet hat mir auch hin und wieder geholfen.

Leider komme ich zurzeit bei einem Projekt nicht weiter, auch weiß ich nicht wo und wie ich das ganze anpacken soll...
Es wäre schön eine Hilfestellung aus der Community zu bekommen.




Das Projekt :

Stündlich wird von einem Gerät eine .txt Datei erzeugt.
Diese Datei beinhaltet Informationen zu Datum Zeit Fehlern Fehlerhäufigkeit...
Es gilt diese Datei auszulesen und zu visualisieren
( Im besten Fall so das man auswählen kann : 2 stunden zurück ; 8 Stunden zurück usw.)

Die Datei hat eine Zeile und ist folgendermaßen aufgebaut :

Code: Alles auswählen

JahrMonatTag:Stunde:Minute:Sekunde,Info1,Info2,Info3,Wertigkeit 1 Einheit,Wert1,Wert2,Dies ist Test 1 - Dies ist Test 1,Ergebniss1,Ergebniss2,Dies ist Test 2 - Dies ist Test 2,Ergebniss1,Ergebniss2,
Ergebniss1 ist eine Zahl Bsp. Dies ist Test 1 - Dies ist Test 1,25,50




Im ersten Anlauf wollte ich die Datei einlesen , neu strukturieren, neu abspeichern.
Einlesen und wieder abspeichern ist kein Problem.
Aber wie ordne ich die Datei? Wie kann ich nach Komma nach Leerzeichen sortieren und die Wertigkeiten stündlich in eine Tabelle schreiben?

Es wäre schön eine Hilfestellung zu bekommen, dies muss natürlich nicht in Form eines komplett fertigen Codes der Fall sein :D:D...
Einen Ansatz bzw. mit welchem Modul oder Thema ich mich auseinander setzen soll würde mir reichen.

Beste Grüße

David
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@Orion: ich verstehe die Frage `Wie kann ich nach Komma nach Leerzeichen sortieren?` nicht. Erster Schritt wäre, die Datei in eine passende Datenstruktur (Wörterbuch, NamedTuple, etc.) oder numpy/pandas-Array einzulesen. Beim händischen Lesen hilft das csv-Modul, um die Spalten am Komma zu trennen. Die Zeitinformation sollte in ein datetime-Objekt konvertiert werden, Zahlen in Zahlen und der Rest sind wohl Strings.

Danach mußt Du die gewünschte Datenfilterung programmieren. Wenn es sich um sehr viele Daten über lange Zeiträume handelt, und die Filterung komplex ist, böte es sich an, alles in eine Datenbank zu speichern.

Bei Problemen, hilft es uns, das konkrete Problem mit Code und eventuellen Fehlermeldungen/Traceback zu posten.
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Orion hat geschrieben:Phyton war nie teil meiner Ausbildung.
Phyton hätte dir in Bezug auf Python auch nicht weitergeholfen.
Orion
User
Beiträge: 5
Registriert: Mittwoch 31. Januar 2018, 20:04

Da mein Text komplett in einer Zeile steht dachte ich es wäre hilfreich statt Komma eine neue Zeile einzufügen um eben erstmal mehrere Zeilen zu haben und somit eine Trennung.
das cvs Modul kenne ich noch nicht werde ich mir anschauen, danke.

@ /me passiert mir ständig :lol: :oops:
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wer erzeugt denn diese Daten? Das ist ein sehr ungewoehnliches Format. Und da wird dir auch das CSV-Modul deswegen nicht weiterhelfen koennen.

Aber split, gerne auch mit Argument fuer die Anzahl der Splits, durchaus:

Code: Alles auswählen

>>> "a:b:c,1,2,3".split(",", 1)
['a:b:c', '1,2,3']
Diese Listeneintraege kannst du dann weiterverarbeiten. Auch wieder mit split.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@Orion: dann habe ich das Dateiformat noch nicht verstanden. Wie ist der formale Aufbau?
Orion
User
Beiträge: 5
Registriert: Mittwoch 31. Januar 2018, 20:04

Die Daten werden von einem Messgerät erzeugt.
Leider bekomme ich hier kein Support mehr und muss damit zurecht kommen. Ich weiß ärgerlich...

Split waren meine letzten Versuche :

Code: Alles auswählen

woerter = {}
fobj=open("Test1.txt")
for line in fobj:
    zuordnung=line.split(",")
    woerter[zuordnung[0]]=zuordnung[1]
    print(woerter)
fobj.close()
durch woerter[zuordnung[0]]=zuordnung[1] kann ich auch schön einstellen ab jeweils welchem Komma der Split erfolgen soll... aber ja das wars dann auch
Orion
User
Beiträge: 5
Registriert: Mittwoch 31. Januar 2018, 20:04

Code: Alles auswählen

woerter = {}
fobj=open("Test1.txt")
for line in fobj:
    woerter=line.split(",")
fobj.close()
print(woerter)
nochmal ein wenig abgeändert.
Also war ich doch schon ganz richtig, gestern Abend war eben auch lange und der Rotwein etwas viel :D
So kann ich jetzt erstmal weiter arbeiten. Danke nochmal __deets__
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@Orion: dein zweiter Code macht jetzt aber etwas ganz anderes. Die erste Zeile kannst Du löschen, da woerter später überschrieben wird. Und Du berücksichtigst nur die letzte Zeile der Datei. Wenn die Datei nur eine Zeile enthalten kann, dann solltest Du keine Schleife schreiben. Benutze das with-Statement:

Code: Alles auswählen

with open("Test1.txt") as text:
    woerter = next(text).split(",")
print(woerter)
Antworten