Seite 1 von 1
daten auslesen, neuen File mit header erstellen und save
Verfasst: Sonntag 9. September 2007, 01:56
von thatspython
Hi,
möchte ein skript schreiben, welches mir daten konvertiert (von binär). Die neuen Files brauchen einen header. Wie schreib ich ein Skript, welches für die neuen Dateien einen header erstellt, dann den Datenblock und sie anschliessend abspeichert ?
Bin für Hilfe dankbar, muss das Skript bis Montag fertig haben...
Merci
t
Verfasst: Sonntag 9. September 2007, 05:32
von Volvic
hört sich für mich nach hausaufgaben an
lies mal das sticky topic:
http://www.python-forum.de/topic-1689.html
Verfasst: Sonntag 9. September 2007, 07:06
von BlackJack
@thatspython: Und irgendwie hast Du die die Frage
schon einmal gestellt.
Hat die Antwort damals nicht weitergeholfen? Wie sieht Dein bisheriger Quelltext aus?
Verfasst: Sonntag 9. September 2007, 08:25
von rayo
Hi
So kannst du den Header und dann die Daten speichern:
Code: Alles auswählen
f = open('neues_file', 'wb')
f.write(header)
f.write(daten)
f.close()
Gruss
Verfasst: Montag 10. September 2007, 15:44
von thatspython
@ volvic: es handelt sich nicht um "Hausaufgaben"
@ BlackJack:
das hier ist soweit mein Skript (ist recht wenig, bin aber auch noch ein python beginner):
Code: Alles auswählen
#!/usr/bin/env python
import sys, struct, time
try:
infilename = sys.argv[1]
outfilename = sys.argv[2]
except:
print "Usage: " + sys.argv[0] + " infile outfile startsample samplewidth"
sys.exit(1)
startsample = 0
samplewidth = 0
try:
startsample = int(sys.argv[3])
samplewidth = int(sys.argv[4])
except:
pass
ifile = open(infilename, 'rb')
ofile = open(outfilename, 'w')
print "Reading from " +infilename+ " ..."
header={}
data = ifile.read(776)
header['rate'] = data[746:751]
header['channels'] = data[774:776]
header['starttime'] = data[726:734]
header['date'] = data[705:713]
channels = int(header['channels'])
samplesize = struct.calcsize('d')
chunklen = channels*samplesize
print header
Nun will ich einen neuen File mit header erstellen.
Der header muss z.B.: an Position 6-15 das Datum, welches ich gerade in "header ['date']"ausgelesen haben, darstellen, in der Form:
yyyy/mm/dd.
Wie bewerkstellige ich das ?
Wie kann ich das bewerkstelligen ?
Verfasst: Montag 10. September 2007, 21:16
von BlackJack
Das kommt ganz darauf an wie das Datum in der Eingabedatei aussieht.
Hast Du schon das Tutorial in der Python-Dokumentation durchgearbeitet?
Man sollte kein ``except`` ohne konkrete Ausnahmen verwenden. So wie's jetzt ist, werden *alle* Ausnahmen behandelt bzw. einfach "verschluckt".