Seite 1 von 1

Einlesen und Konvertieren von Daten

Verfasst: Freitag 8. Mai 2015, 13:28
von Lienz20013
Schönen guten Tag. Ein neues Messgärt, neue Daten, neuer spass...
Und zwar legt es für jede Messung ein neues csv-file an welches folgendermaßen aussieht:

blabla;;;;
TemperatureSize;1092;;;
0;0;1333333;434345;1
1;1;233333;2342424;42424
2;2;333333;3434343;34343
Date.Year;2015;;;
Date.Month;3;;;
Date.Day;25;;;
Time.Hour;12;;;
Time.Minute;49;;;
Time.Second;57;;;

und ein anderes das so aussieht:

blabla;;;;
[Trace.4];;;;
TemperatureSize;1092;;;
0;0;166666;3434344;15555
1;1;266666;2342424;42424
2;2;366666;3434343;34343
Date.Year;2015;;;
Date.Month;3;;;
Date.Day;25;;;
Time.Hour;12;;;
Time.Minute;59;;;
Time.Second;57;;;

u.s.w.

Ich würde aber gern das, dass alles wie folgt aussieht:

2015-3-25 12:49:57;1333333;2333333;3333333
2015-3-25 12:59:57;166666;266666;366666

Aber ich bekomms nicht hin. Bis jetzt hab ich:

Code: Alles auswählen

directory = r"data/RAMAN_faser/UIT_Temperatur/test/"
files = "*.csv"
filenames = glob.glob(directory + files)
with open('data/RAMAN_faser/data_raman_test.csv', 'w') as outfile:
    for fname in filenames:
       with open(fname) as infile:
           for line in itertools.islice(infile, 2, None):
                outfile.write(line)
Da schreibt er mir die Werte schon einmal uneteinander ohne den Rest. Aber wie ich die gewünschten Werte nacheinander bekomme und dann noch die Zeit davor weiß ich nicht. Wer lässt zu das Daten so ausgegeben werden :evil: ?
Aaaahhh..über Hilfe würde ich mich freuen.

Re: Einlesen und Konvertieren von Daten

Verfasst: Freitag 8. Mai 2015, 13:41
von sparrow
Geh die Quelldatei Zeile für Zeile durch. Anhand dessen womit die Zeile beginnt kannst du erkennen was fü Daten darin nach dem ; enthalten sind.
Am Ende die gewonnen Daten einmal zu einer Zeile klöppeln und fertig.

Re: Einlesen und Konvertieren von Daten

Verfasst: Freitag 8. Mai 2015, 14:58
von Sirius3
@Lienz20013: das csv-Module könnte hilfreich sein, dann die Daten einfach in ein Dictionary und passen zusammenklöppeln:

Code: Alles auswählen

measurement = dict(row[:2] for row in measurement_input)
print "{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d};{6};{7};{8}".format(
    measurement["Date.Year"],
    measurement["Date.Month"],
    measurement["Date.Day"],
    measurement["Time.Hour"],
    measurement["Time.Minute"],
    measurement["Time.Second"],
    measurement[0],
    measurement[1],
    measurement[2])

Re: Einlesen und Konvertieren von Daten

Verfasst: Freitag 8. Mai 2015, 17:20
von Lienz20013
Ich weiß nicht, ich hab das mal probiert:

Code: Alles auswählen

import csv

directory = r"data/RAMAN_faser/UIT_Temperatur/test/"
files = "*.csv"
filenames = glob.glob(directory + files)
with open('data/RAMAN_faser/data_raman_test.csv', 'w') as csvfile:
       reader = csv.reader(filenames)
       measurement = dict(row[:2] for row in reader)
       print "{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d};{6};{7};{8}".format(
               measurement["Date.Year"],
                measurement["Date.Month"],
                measurement["Date.Day"],
                measurement["Time.Hour"],
                measurement["Time.Minute"],
                measurement["Time.Second"],
                measurement[0],
                measurement[1],
                measurement[2])
aber so läufts nicht.

Re: Einlesen und Konvertieren von Daten

Verfasst: Freitag 8. Mai 2015, 17:30
von Sirius3
@Lienz20013: was heißt "läuft nicht"?

Re: Einlesen und Konvertieren von Daten

Verfasst: Freitag 8. Mai 2015, 17:59
von BlackJack
@Lienz20013: Programmieren heisst nicht wild herum raten. Da wird doch sehr wahrscheinlich eine Ausnahme ausgelöst. Und dann schaust Du mal in der Dokumentation was die Funktion die sich da beschwert als Argument(e) erwartet und was Du stattdessen übergibst. Dann sollte klar sein warum das so nicht funktioniert.