Code: Alles auswählen
for filename in os.listdir(path):
hidden = False
for hidden_file in self.hidden_files:
if hidden_file.match(filename):
hidden = True
break
if hidden:
continue
....
Jonas
Code: Alles auswählen
for filename in os.listdir(path):
hidden = False
for hidden_file in self.hidden_files:
if hidden_file.match(filename):
hidden = True
break
if hidden:
continue
....
Code: Alles auswählen
for filename in [name for name in os.listpath(dir) if name not in self.hidden_files]:
....
Code: Alles auswählen
def matches_any(patterns, string):
for pattern in patterns:
match = pattern.match(string)
if match:
return match
Code: Alles auswählen
for filename in os.listdir(path):
if matches_any(self.hidden_files, filename):
continue
Code: Alles auswählen
for filename in os.listdir(path):
if any(hf.match(filename) for hf in self.hidden_files):
continue
Sexy!EyDu hat geschrieben:Hier mal mein Vorschlag:
Code: Alles auswählen
for filename in os.listdir(path): if any(hf.match(filename) for hf in self.hidden_files): continue
Nein, werden sie nicht. Schau dir mal die Spezifikation von any an. Die Auswertung des Generator-Ausdrucks wird sofort dann abgebrochen (durch any), wenn das erste Elemente mit dem Wert "True" gefunden wird. Zum Testen musst dir sonst einfach mal einen eigenen Generator schreiben:veers hat geschrieben:Bloss werden da auch alle ausdrücke immer ausgeführt.
Code: Alles auswählen
>>> def testgen():
print "TRUE..."
yield True
print "FALSE..."
yield FALSE
>>> any(testgen())
TRUE...
True
>>>
Ah! Sehen sich ja ziemlich ähnlichEyDu hat geschrieben:Ist ja auch keine Listcomprehension sondern ein Generator-Ausdruck
Code: Alles auswählen
for filename in os.listdir(path):
if True in (bool(hf.match(filename)) for hf in self.hidden_files):
continue