Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man mit Python effizient alle „.txt'-Dateien in Unterordnern finden?

Wie kann man mit Python effizient alle „.txt'-Dateien in Unterordnern finden?

Patricia Arquette
Freigeben: 2024-10-29 19:28:02
Original
938 Leute haben es durchsucht

How to Efficiently Find All

So durchsuchen Sie Unterordner effizient rekursiv nach bestimmten Dateitypen

Bei der Skripterstellung ist es häufig erforderlich, Unterordner innerhalb eines Hauptordners gründlich zu durchsuchen . In Python kann die Funktion os.walk Verzeichnisse rekursiv durchlaufen. Es kann jedoch schwierig sein, nur Dateien eines bestimmten Typs zu extrahieren.

Im bereitgestellten Beispiel besteht das Ziel darin, eine Liste aller „.txt“-Dateien in einem Hauptordner und seinen Unterordnern zu erstellen. Der Code verwendet os.walk, um alle Dateien und Unterordner zu durchlaufen, aber subFolder enthält eine Liste von Unterordnern anstelle des richtigen Unterordners für jede Datei.

Um dieses Problem zu beheben, wird die Variable „root“ verwendet, die den aktuellen Wert darstellt Verzeichnispfad, sollte anstelle von Unterordner verwendet werden. Jede Datei hat ihr entsprechendes Stammverzeichnis, das ihren Speicherort im Dateisystem angibt.

Hier ist eine optimierte Lösung:

import os
result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.txt']
Nach dem Login kopieren

Dieser Code durchläuft alle Stammverzeichnisse, Unterverzeichnisse und Dateien im PATH-Ordner. Dateien mit der Erweiterung „.txt“ werden zur Ergebnisliste hinzugefügt.

Alternativ kann das Glob-Modul die erweiterungsbasierte Auswahl vereinfachen:

from glob import glob
result = [y for x in os.walk(PATH) for y in glob(os.path.join(x[0], '*.txt'))]
Nach dem Login kopieren

Für Python 3.4 eine prägnantere Lösung Die Verwendung von Pathlib ist verfügbar:

from pathlib import Path
result = list(Path(".").rglob("*.[tT][xX][tT]"))
Nach dem Login kopieren

Diese Lösungen durchsuchen effizient Unterordner, extrahieren Dateien basierend auf der Erweiterung und geben sie als Liste zurück.

Das obige ist der detaillierte Inhalt vonWie kann man mit Python effizient alle „.txt'-Dateien in Unterordnern finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage