[Python-de] Was ich schon immer zu Python fragen wollte und mich nie getraut habe

Gerson Kurz Gerson.Kurz at t-online.de
Tue Oct 22 21:02:41 EDT 2002


Alles Kleinkram und unsortiert und vermutlich obertrivial, aber warum nicht:

[1] Idiomfrage: os.listdir() wirft u.U. unter Win32 eine
WindowsError-Exception (etwa, wenn man Verzeichnisse listen will, die unter
NTFS geschützt sind). Unter Linux ist der Exceptiontype natürlich nicht
bekannt. Wie schreibe ich folgenden Code portabel:

try:
	files = os.listdir( irgendwas )

except WindowsError, werr:
	# fehlercode auswerten, z.B. meldung bei Access Denied

Bisher definiere ich entweder einen WindowsError (bäh) oder klammere alles
in "if os.name == ". Das bringt mich zu Punkt 2:

[2] Wie frage ich korrekt auf "Umgebung ist Windows" ab?

if os.name == "nt":

wird ja wohl klappern unter 9x (keine Ahnung, ich habe kein 9x).

[3] Gibt es eigentlich eine Möglichkeit, den %-operator als Funktion auf
Strings aufzurufen? Ein dir("") liefert keine offensichtliche Anregung.

Hintergrund: Nein, ich will das nicht für neue lambda-Wirrnisse benutzen,
sondern möchte halt z.B. %-argumente on-the-fly zusammenbasteln und dann
ausgeben -> da das %-argument entweder ein Tupel (oder ein Dict sein muß,
dann aber auch mit keywords), ist das etwas unhandlich.

[4] Keine Frage, sondern nur gejammer: ich vermisse do-while. weil:

DECINT = DECDIGIT { DECDIGIT }

(Ein DECINT besteht aus einem DECDIGIT, gefolgt von beliebig vielen weiteren
DECDIGITs). In c schreibe ich direkt:

if( decdigit(x) )
{
	do
	{
		// add x to decint
	}
	while( decdigit(x) )
}

in python:

if decdigit(x):
	// add x to decint
	while decdigit(x):
		// add x to decint


[5] Gibt es einen *simplen* Beispielproject für eine Pythonextension unter
Linux (oder Unixoiden Betriebssystemen allgemein) ? Damit meine ich ohne
SWIG, Netz und doppelten Boden, so wie mein
http://p-nand-q.com/python/pysapi.zip ? (Dessen Source aus 20 Zeilen
besteht), möglichst standalone.






More information about the Python-de mailing list