daten auslesen, neuen File mit header erstellen und save

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
thatspython
User
Beiträge: 6
Registriert: Freitag 7. September 2007, 00:07

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
Volvic
User
Beiträge: 30
Registriert: Donnerstag 14. Juni 2007, 05:18

hört sich für mich nach hausaufgaben an ;) lies mal das sticky topic: http://www.python-forum.de/topic-1689.html
BlackJack

@thatspython: Und irgendwie hast Du die die Frage schon einmal gestellt.

Hat die Antwort damals nicht weitergeholfen? Wie sieht Dein bisheriger Quelltext aus?
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

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
thatspython
User
Beiträge: 6
Registriert: Freitag 7. September 2007, 00:07

@ 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 ?
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".
Antworten