[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