Seite 1 von 1

Verschiedene Dateiformate als Datensatz speichern

Verfasst: Montag 30. Juni 2008, 12:13
von alpha
Hallo Pythonforum,

ich habe das Problem einen Text (string) ein Bild (jpg) und ein Soundfile (mp3??) als einen Datensatz speichern zu müssen. Was bietet sich da an? Kann ich das mit Pickle erledigen, wäre das mit SQLite zu machen oder kann ich binäre Daten auch in einer XML Datei speichern? Was böte sich da an wenn man insgesammt ca. 1000 solche Datensätze handeln muß.

Gruß
alpha

Verfasst: Montag 30. Juni 2008, 12:36
von jens
Binäre Daten in einer Datenbank ablegen ist meist keine gute Idee. Du konntest die Dateien doch ins Dateisystem ablegen und nur den Pfad in die Datenbank speichern.
Aufpassen muß man allerdings bei doppelten Dateinamen ;)

Verfasst: Montag 30. Juni 2008, 12:42
von alpha
Hallo jens,

danke für den Tip. Ich finde es aber irgendwie unpraktisch hunderte von Dateien in einem Verzeichnis zu haben die irgendwelche Namen haben und ich keinen Zusammenhang zu den anderen Dateien sehe. Gibts da keine andere Lösung?

alpha

Verfasst: Montag 30. Juni 2008, 12:47
von jens
Der Zusammenhang kommt halt aus den Information aus der Datenbank, die sagt, welches Bild mit welchem Ton zusammen gehört.

Verfasst: Montag 30. Juni 2008, 12:51
von n4p
Wenn du es sowieso in einer Datenbank stehen hast kannst du ja auch eine gewisse Struktur rein bringen und zumindest nach Typ soriteren. Allerdings solltest du dann nicht manuell drin rumändern, da sonst deine Datenbank nicht mehr passen würde.

Verfasst: Montag 30. Juni 2008, 12:53
von Zap
Ich würde es ganz simple machen und die Metadaten in einer Datenbank schreiben. (ich denke mal das in deinem Fall SQlite reichen sollte)
Ich würde dann die ID's der Datenbankeinträge nehmen welche den Namen der Dateien bestimmen. (wovon eine immer mit .mp3 und eine mit .jpg endet.)
Man kann auch eine ID vom User erfragen. Haupsache sie ist unique.

Ich würde die Daten auf jeden Fall nicht in einen Kontainer stopfen, das wird nur unnötig kompliziert und garantiert langsamer.