Hier ist ein bisschen ein Programm, das ich, dass ich schreibe eine csv ein Verzeichnis von Dateien erstellen zu kategorisieren:Pythonischer Weg, mehrere for-Schleifen mit verschiedenen Filtern gegen dieselbe Liste zu verarbeiten?
matches = []
for root, dirnames, filenames in os.walk(directory):
for filename in fnmatch.filter(filenames, '*[A-Z]*'):
matches.append([os.path.join(root, filename), "No Capital Letters!"])
test = re.compile(".*\.(py|php)", re.IGNORECASE)
for filename in filter(test.search, filenames):
matches.append([os.path.join(root, filename), "Invalid File type!"])
Grundsätzlich kann der Benutzer einen Ordner gesammelt und das Programm zeigt Problem-Dateien, die von mehreren Typen sein können (nur zwei hier aufgeführt: keine Dateien mit Großbuchstaben, keine PHP-oder Python-Dateien). Es wird wahrscheinlich fünf oder sechs Fälle geben.
Während dies funktioniert, möchte ich umgestalten. Ist es möglich, so etwas wie
for filename in itertools.izip(fnmatch.filter(filenames, '*[A-Z]*'), filter(test.search, filenames), ...):
matches.append([os.path.join(root, filename), "Violation")
zu tun, während die Lage, den Überblick zu behalten, von denen der ursprünglichen entpackten Listen die verursacht „Verletzung?“
mit Beispiel aktualisiert. Vereinbarte Link-Only-Antworten sind nicht so gut. –