[Python-de] Anfängerfrage : Verzeichnisinhalt mit Variable vergleichen

Martin v. Loewis martin at v.loewis.de
Sun May 12 21:30:20 EDT 2002


Marcus Klein <python at marcus1.de> writes:

> Vielleicht kann mir jemand helfen ?

Ich empfehle

for f in TOGET:
  if os.path.exists(f):
    print "Warning"

> for f in TOGET:
>     print "getting remote file ", f
>     fname = PATHTOFILE + f
>     
>     lfiles = os.listdir(PATHTOFILE)
>     lfile = re.compile(f, re.M).search(lfiles, 1)

Das kann nicht funktionieren: os.listdir gibt eine Liste von Strings
zurück, während re.search einen einzelnen String verarbeitet. Also
könnte der Code lauten

  lfiles = os.listdir(PATHTOFILE)
  lfiles = string.join(lfiles, "TRENNER")
  lfile = re.compile(f, re.M).search(lfiles, 1)

Die letzte Zeile wäre dann immer noch nicht so gut: Wenn Du einen
kompilierten regulären Ausdruck nicht in einer Variable speichern
willst, schreibst Du kürzer

  lfile = re.search(f, lfiles, re.M)

Wie gesagt: os.path.exists is viel kürzer, und auch effizienter: Das
Betriebssystem kann u.U. testen, ob eine bestimmte Datei existiert,
ohne das ganze Verzeichnis lesen zu müssen.

Ciao,
Martin




More information about the Python-de mailing list