Seite 1 von 1

Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 08:43
von Orion
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

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 09:35
von Sirius3
@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.

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 09:48
von /me
Orion hat geschrieben:Phyton war nie teil meiner Ausbildung.
Phyton hätte dir in Bezug auf Python auch nicht weitergeholfen.

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 10:09
von Orion
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:

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 10:37
von __deets__
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.

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 11:39
von Sirius3
@Orion: dann habe ich das Dateiformat noch nicht verstanden. Wie ist der formale Aufbau?

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 12:15
von Orion
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

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 13:43
von Orion

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__

Re: Unterstützung

Verfasst: Donnerstag 1. Februar 2018, 14:12
von Sirius3
@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)