hab ein Schnipsel Perl-Code, geht das auch in Python?

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
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Hallo!

Hab ein kleines Perl-Script, das aus einer bestimmten Art von Binaryfiles was ausliest und in "lesbare" Werte umwandelt. An diesem Script sollte man ein paar Sachen aendern. Leider ist der Kollege der das geschrieben hat nicht mehr da und ich kann null Perl. Nun koennte ich das natuerlich von jemand anderem machen lassen, aber da der Teil um den es geht sehr ueberschaubar ist vom Umfang her und es mir zur Integration in andere Programme eh als Pythonscript lieber waere, ueberleg ich ob das nicht auch in Python einfach geht. Leider erschliesst sich mir nicht, was dieser folgende Block aus dem Perlscript denn macht und wie die entsprechenden Kommandos in Python denn aussehen koennten:

Code: Alles auswählen

open(INPUT,"<$inputfile") ||
   die "Can't input $inputfile $!";

my $offsetR = 24;
my $offsetG = 28;
my $offsetB = 32;
my $offsetM = 20;
my $r, $g, $b, $m;

binmode(INPUT);

seek(INPUT, $offsetM, 0);
read(INPUT, $m, 4);
$m = $macOS==1 ? unpack("f",reverse($m)) : unpack("f",$m) ;

seek(INPUT, $offsetR, 0);
read(INPUT, $r, 4);
$r = $macOS==1 ? unpack("f",reverse($r)) : unpack("f",$r);

seek(INPUT, $offsetG, 0);
read(INPUT, $g, 4);
$g = $macOS==1 ? unpack("f",reverse($g)) : unpack("f",$g) ;

seek(INPUT, $offsetB, 0);
read(INPUT, $b, 4);
$b = $macOS==1 ? unpack("f",reverse($b)) : unpack("f",$b) ;

close(INPUT);
Kann damit jemand was anfangen und mich in die richtige Richtung weisen?

Ganz lieben Dank, Shakebox

PS: bitte Bescheid sagen wenn zum Verstaendnis noch was fehlt, z.B. mehr Teile aus dem Script oder so.
deets

Das Modul, welches du suchst, heisst "struct".

Darin gibt es die Funktion unpack, die macht dasselbe wie unpack in Perl. Fuer die Parametrisierung ("f") musst du ggf. nachschauen, was das Perl Modul darunter versteht, und das dann in Python entsprechend anpassen. Es sollte aber eigentlich gehen, f ist in beiden Faellen ein float (also einfache Genauigkeit Fliesskomma)
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

wow, das ging flott. Ganz lieben Dank! Damit komm ich glaub schon weiter
Antworten