Seite 1 von 1

datei vom dateiende an auslesen

Verfasst: Freitag 11. Juni 2004, 21:09
von NOTZE
Hi,

Ich möchte eine datei vom ende an auslesen und davon nur die letzten x bytes.
Wie kann ich das anstellen?

Verfasst: Freitag 11. Juni 2004, 21:18
von Dookie
Hi Notze,

Datei öffnen, Länge bestimmen und mit f.seek(-anzahl_bytes,2) an Position Dateilänge-Byteanzahl gehen und lesen.
siehe auch pydoc file


Gruß

Dookie

Verfasst: Samstag 12. Juni 2004, 10:06
von NOTZE
Ich wollte jetzt mal einen einfachen id3Tag editor realisieren zudem ich dann auch ne GUI machen will.
Das Auslesen der Tags ist soweit recht einfach, nur beim genre habe ich Probleme.
Laut diesem Link hier soll man ein byte auslesen.
Also mach ich es so (der dateizeiger steht direkt an der position nach dem auslesen von genre):
:

Code: Alles auswählen

      genre = f.read(1)
aber wenn ich mir das ausgeben lasse kommt irgendein Sonderzeichen,
Aber eigentlich sollte eine Zahlenwert kommen.

Verfasst: Samstag 12. Juni 2004, 11:23
von Dookie
Hi Notze,

Code: Alles auswählen

genre = ord(f.read(1))
und daran denken die Datei im Binären Modus zu öffnen, unter Windows kanns sonst Probleme geben.


Gruß

Dookie

Verfasst: Samstag 12. Juni 2004, 11:25
von Milan
Hi. Ja, du musst das Genre dann mir ord bestimmen. Eine fertige ID3 Klasse gibts aber auch schon hier bei SF, da kannst du ja zur Not abspicken :wink:

Verfasst: Samstag 12. Juni 2004, 12:35
von NOTZE
Dookie hat geschrieben:Hi Notze,

Code: Alles auswählen

genre = ord(f.read(1))
und daran denken die Datei im Binären Modus zu öffnen, unter Windows kanns sonst Probleme geben.


Gruß

Dookie
Dazu habe ich jetzt 2 fragen:
1: Was macht die Funktion ord?
2: Wie kann ich eine Datei binär öffnen? Weil unter Linux scheint es ja keine Probleme zu machen die Datei zu öffnen.

@milan: Naja ich will es soweit wie möglich ohne Spicken versuchen :)

Verfasst: Samstag 12. Juni 2004, 13:26
von Dookie
Auszug aus pydoc file - Add a 'b' to the mode for binary files. - also

Code: Alles auswählen

f = file("test.bin", "rb") #Datei zum lesen im Binärmodus öffnen
ord liefert die Ordinalzahl eines Einzeichenstrings(Byte) als Integer.


Gruß

Dookie

Verfasst: Samstag 12. Juni 2004, 14:05
von NOTZE
Dookie hat geschrieben:Auszug aus pydoc file - Add a 'b' to the mode for binary files. - also

Code: Alles auswählen

f = file("test.bin", "rb") #Datei zum lesen im Binärmodus öffnen
ord liefert die Ordinalzahl eines Einzeichenstrings(Byte) als Integer.


Gruß

Dookie
ah okay danke , dann werd ich ma weiter an der Klasse rumschrauben