eval() und fuehrende Nullen

Uwe Bielz u.bielz at wad.org
Mon Mar 2 22:10:50 EST 1998


Status: RO

Hallo,

ich schreibe gerade ein CGI-Skript das mir helfen soll, meine
Onlinezeiten unter Kontrolle zu halten. Dazu durchsuche ich die
Log-Datei des PPP-Daemons nach "Connect:" und "Connection
terminated"-Zeilenpaaren und berechne die Differenz zwischen den
beiden Zeitmarken.

Bei der Umwandlung der Logdatei-Form "Oct 11 21:07:46" in eine zu
time.gmtime() passende Form bin ich nun darüber gestolpert, daß eval()
nicht mit fuehrenden Nullen umgehen kann, d.h. um die Minuten aus
obiger Logdateizeile in eine Zahl konvertieren zu koennen muss ich die
fuehrende Null mit regsub.gsub() weg-ersetzen:

# l = "Nov 11 22:21:09 kruecke pppd[223]: Connect: ppp0 <--> /dev/tty2"

[mon, day, tm, junk] = string.split(l, None, 3)
...
[hour, min, sec] = string.split(tm, ':')

# hour = eval(hour) geht im Skript nicht :-/
hour = eval(regsub.gsub('^0', '', hour))
min = eval(regsub.gsub('^0', '', min))
sec = eval(regsub.gsub('^0', '', sec))

Wenn ich das nicht tu, kommt folgendes (aber nur im Skript, ein
manuell eingegebenes "eval('09')" im Interpreter klappt!):

	Traceback (innermost last):
	  File "./hooktime.py", line 183, in ?
	    if __name__ == '__main__': main()
	  File "./hooktime.py", line 123, in main
	    s.start = normalize(line)
	  File "./hooktime.py", line 34, in normalize
	    sec  = eval(sec)
	  File "<string>", line 1
	    09
	    ^
	SyntaxError: unexpected EOF while parsing

Das finde ich ein wenig unelegant. Ist das eine Nachfrage bei Guido
wert? Hab ich was uebersehen? Gibt es vielleicht eine andere
Moeglichkeit, Zeichenketten fuehrende-Nullen-resistent in Zahlen
umzuwandeln? Ich lese auch gerne im Feinen Manual nach, aber wo?

Uwe

-- 
Uwe Bielz // Am Alten Steg 1 // 51647 Gummersbach // 02261/65857

______________________________________________________________
   python-de          the German Python mailing list
send messages to:   <mailto:python-de at solar.skyport.net>
list manager: <mailto:owner-python-de at solar.skyport.net>
______________________________________________________________




More information about the Python-de mailing list