[Python-de] Wie mach ich das in python:

Christian Klinger cklinger at novareto.de
Mit Jan 5 12:13:58 CET 2005


Andreas Jung wrote:

> Hi Christian,
>
> --On Mittwoch, 5. Januar 2005 11:21 Uhr +0100 Christian Klinger 
> <cklinger at novareto.de> wrote:
>
>> Hallo
>>
>> ich bin gerade dabei ein altes perl script zu pythonisieren.
>>
>> Hierbei treffe ich auf folgendes Konstrukt (ps: leider wenig Ahnung was
>> das macht):
>>
>> ####################################
>> my $ts=time;
>> print $ts;
>> my @ts = ( (($ts & 0xff000000) >> 24),
>>                (($ts & 0xff0000) >> 16),
>>                (($ts & 0xff00) >> 8),
>>                (($ts & 0xff)) );
>>
>> print "\n";
>> print @ts;
>> print "\n";
>>
>
> Offenbar wird hier ein 4-Byte String in ein 4-Tupel von Ints 
> aufgedröselt.
> In Python sollte das irgendwie so gehen:
>
> tp = (ord(ts[0]), ord(ts[1]), ord(ts[2]), ord(ts[3]))
>
> Andreas
>
>
Wie ist das mit den 4-Byte String zu verstehen ?

Ich habs so versucht:

ts=str(int(mktime(gmtime())))
print ts
tp = (ord(ts[0]), ord(ts[1]), ord(ts[2]), ord(ts[3]))
print tp

mit diesem ergebnis oben das perl ergebnis unten python:

# perl -w kti.pl
1104926156
65219213204

# python t.py
1104922560
(49, 49, 48, 52)

mfg Christian