Finden Sie alle Dateien in einem Verzeichnis
Wie können wir eine Datei auf einem Computer mit Python finden? Es gibt viele Möglichkeiten, es zu tun, beginnen wir mit dem ersten.
Mit os.listdir ()
Sie müssen nur das Betriebssystemmodul importieren und Sie können das Betriebssystem verwenden.listdir Funktion, um alle Dateien in einem Verzeichnis zu sehen. Wenn Sie in Python 3 nichts als Argument in die runde Klammer einfügen, erhalten Sie eine Liste aller Dateien und Ordner des aktuellen Verzeichnisses., In Pyton 2 müssen Sie os verwenden.listdir(„.“) um die Dateien im aktuellen Verzeichnis zu sehen.
# First tryimport osf_list = os.listdir()
Wenn Sie ein bestimmtes Verzeichnis möchten, müssen Sie den Pfad als Argument angeben.
os.listdir("C:\\documents")
In diesem Beispiel können Sie die Dateien im Ordner Dokumente der Festplatte C:
os.listdir(): Dateien im aktuellen Verzeichnis abrufen (Python 3)
Der einfachste Weg, die Datei im aktuellen Verzeichnis in Python 3 zu haben, ist dies., Es ist wirklich einfach, verwenden Sie das Betriebssystemmodul und die Funktion listdir() und Sie haben die Datei in diesem Verzeichnis (und eventuelle Ordner, die sich im Verzeichnis befinden, aber Sie haben die Datei nicht im Unterverzeichnis dafür können Sie walk verwenden – ich werde später darüber sprechen).
import osarr = os.listdir()arr
Abrufen des vollständigen Pfadnamens
Wie Sie bemerkt haben,haben Sie nicht den vollständigen Pfad der Datei im obigen Code. Wenn Sie den absoluten Pfad benötigen, können Sie eine andere Funktion des Betriebssystems verwenden.path-Modul namens _getfullpathname, legt die Datei, die Sie von os erhalten.listdir() als argument., Es gibt andere Möglichkeiten, den vollständigen Pfad zu haben, wie wir später überprüfen werden (ich habe, wie von mexmex vorgeschlagen, _getfullpathname durch abspath ersetzt).
Holen Sie sich den vollständigen Pfadnamen eines Dateityps in alle Unterverzeichnisse mit walk
Ich finde dies sehr nützlich, um Dinge in vielen Verzeichnissen zu finden, und es hat mir geholfen, eine Datei zu finden, über die ich mich nicht erinnern konnte der Name:
import osthisdir = os.getcwd()for r, d, f in os.walk(thisdir): for file in f: if ".docx" in file: print(os.path.join(r, file))
os.listdir(): Dateien im aktuellen Verzeichnis (Python 2)
import osarr = os.listdir('.')arr# output:
Zu gehen, bis in den Verzeichnis-Baum
# method 1x = os.listdir('..')# method 2x = os.listdir('/')
Holen Sie sich Dateien: os.,listdir() in einem bestimmten Verzeichnis (Python 2 und 3)
import osarr = os.listdir('F:\\python')arr# output:
Ruft Dateien eines bestimmten Unterverzeichnisses mit dem Betriebssystem ab.listdir()
import osx = os.listdir("./content")
os.Spaziergang(‘.‘) – current directory
import osarr = next(os.walk('.'))arr# output:
glob-Modul – alle Dateien
import globprint(glob.glob("*"))# output:
next(os.Spaziergang(‘.‘)) und os.Pfad.join(‚dir‘,’file‘)
next(os.walk(‚F:\‘) – Holen Sie sich den vollständigen Pfad – Liste Verständnis
# output#
os.walk-get full path-alle Dateien in Unterverzeichnissen
x = x# output#
os.,listdir() – nur txt-Dateien
arr_txt = print(arr_txt)# output:
glob – nur txt-Dateien
import globx = glob.glob("*.txt")x# output:
Mit glob, um den vollen Pfad zu den Dateien
Wenn ich muss den absoluten Pfad zu den Dateien:
Andere Verwendung glob
Wenn ich möchte, dass alle Dateien in das Verzeichnis:
x = glob.glob("*")
Mit os.Pfad.ist es möglich, Verzeichnisse in der Liste*
Mit pathlib from (Python 3.4)
zu vermeiden, wenn Sie list comprehension
flist =
verwenden möchten Holen Sie sich alle und nur Dateien mit os.,Fuss
nur Dateien mit weiter und gehen in ein Verzeichnis
import osx = next(os.walk('F://python'))print(x)################################### output:
nur Verzeichnisse mit weiter und gehen in ein Verzeichnis
import osnext(os.walk('F://python')) # for the current dir use ('.')# output:
**Holen Sie sich alle subdir Namen mit Fuss
os.scandir() von python 3.5 auf
Ex. 1: Wie viele Dateien befinden sich in den Unterverzeichnissen?
In diesem Beispiel suchen wir nach der Anzahl der Dateien, die in allen Verzeichnissen und Unterverzeichnissen enthalten sind.
Ex.2: Wie kopiere ich alle Dateien von einem Verzeichnis in ein anderes?,
Ein Skript, um Ordnung in Ihrem Computer zu finden alle Dateien eines Typs (Standard: pptx) und Kopieren Sie sie in einen neuen Ordner.
Ex.3: So erhalten Sie alle Dateien in einer TXT-Datei
Falls Sie eine TXT-Datei mit allen Dateinamen erstellen möchten:
Beispiel: Erstellen Sie eine txt mit allen Dateinamen auf Ihrer Festplatte
Alle Dateien von C:\\ in einer Textdatei
Dies ist eine kürzere Version des vorherigen Codes. Ändern Sie den Ordner, in dem die Dateien gefunden werden sollen, wenn Sie von einer anderen Position aus starten müssen., Dieser Code generiert eine 50 MB große Textdatei auf meinem Computer mit weniger als 500.000 Zeilen mit Dateien mit dem vollständigen Pfad.
import oswith open("file.txt", "w", encoding="utf-8") as filewrite: for r, d, f in os.walk("C:\\"): for file in f: filewrite.write(f"{r + file}\n")