Referenzseite: [Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
Mit Python können Sie eine bestimmte Datei lesen und die Daten abrufen. Sie können den Dateinamen direkt eingeben, aber manchmal müssen Sie eine Liste der Dateien abrufen und eine Datei in Ihrem Programm auswählen. In diesem Fall können Sie mithilfe der Funktion listdir problemlos eine Liste der Verzeichnisse (Ordner) und Dateien abrufen.
Dieses Mal werde ich erklären, wie Sie die Verzeichnis- und Dateiliste und den Pfad mithilfe der Funktion listdir abrufen.
Inhaltsverzeichnis 1 [Liste der Verzeichnisse und Dateien mit der Funktion listdir abrufen](Liste der Verzeichnisse und Dateien mit der Funktion ## listdir abrufen) 2 [Holen Sie sich nur das, was Sie in Kombination mit der Funktion lisdir benötigen](## Holen Sie sich nur das, was Sie in Kombination mit der Funktion lisdir benötigen) 3 [Datei mit Glob-Funktion abrufen](## Datei mit Glob-Funktion abrufen)
Verwenden Sie die Funktion listdir, um eine Liste der Verzeichnisse und Dateien in Python abzurufen. Die Syntax der listdir-Funktion lautet wie folgt.
import os #Muss erforderlich sein
Listenvariable= os.listdir('Pfad')
Die istdir-Funktion ist eine Funktion des Moduls mit dem Namen os. Importieren Sie sie daher unbedingt, wenn Sie die listdir-Funktion verwenden. Indem Sie den Pfad des Verzeichnisses und das Verzeichnis, für das Sie die Dateiliste abrufen möchten, an das Argument listdir übergeben, können Sie die Liste der Verzeichnisse und Dateien in diesem Verzeichnis abrufen.
import os
directory = os.listdir('C:\Python35')
print(directory)
Ausführungsergebnis
[‘Lib’, ‘python.exe’, ‘Readme.txt’, ‘Scripts’, ‘tcl’, ‘test.txt’] Holen Sie sich in Kombination mit der Funktion lisdir nur das, was Sie brauchen
Die Funktion listdir ruft eine Liste aller Ordner und Dateien im angegebenen Pfad ab. In einigen Fällen möchten Sie jedoch möglicherweise nur Verzeichnisse oder umgekehrt. In einem solchen Fall kann dies mithilfe von isdir realisiert werden, mit dem überprüft werden kann, ob der angegebene Pfad auf ein Verzeichnis oder eine Datei verweist. Die Syntax von isdir lautet wie folgt.
os.path.isdir('Pfad')
isdir gibt True zurück, wenn der im Argument übergebene Pfad ein Verzeichnis ist, andernfalls False. Sie können dies mit listdir verwenden, um eine Liste nur von Verzeichnissen oder nur Dateien abzurufen.
import os
path = 'C:\Python35\\' #Verzeichnis, für das Sie eine Liste der Verzeichnisse erhalten möchten
files = []
for x in os.listdir(path):
if os.path.isdir(path + x): #Fügen Sie die extrahierten Objekte zum Pfad hinzu, um den vollständigen Pfad zu erstellen
files.append(x)
print(files)
Ausführungsergebnis
[‘Lib’, ‘Scripts’, ‘tcl’]
Rufen Sie zunächst eine Liste der Verzeichnisse und Dateien mit listdir ab und rufen Sie sie nacheinander mit einer for-Anweisung ab. Sie können den Pfad des Verzeichnisses oder der Datei erstellen, indem Sie den extrahierten Verzeichnisnamen oder Dateinamen nach dem ursprünglichen Pfad verketten.
Wenn Sie diesen Pfad an isdir übergeben, wissen Sie, ob es sich um ein Verzeichnis oder eine Datei handelt. In diesem Fall versuche ich, nur diejenigen hinzuzufügen, die isdir True zurückgibt, dh die Verzeichnisse zur Liste. Wenn Sie diese if-Anweisung ablehnen, können Sie nur die file-Anweisung abrufen.
Wenn Sie isfile anstelle von isdir verwenden, können Sie nur die Datei abrufen.
import os
path = 'C:\Python35\\'
files = []
for x in os.listdir(path):
if os.path.isfile(path + x): #Verwenden Sie isfile anstelle von isdir
files.append(x)
print(files)
Ausführungsergebnis
[‘python.exe’, ‘Readme.txt’, ‘test.txt’]
Mit listdir, isdir und isfile können Sie jetzt eine Liste der Verzeichnisse und Dateien abrufen. Es gibt jedoch Situationen, in denen Sie die Datei detaillierter abrufen möchten. Wenn Sie beispielsweise eine Datei nur mit der Erweiterung .txt extrahieren möchten, müssen Sie die Zeichenfolge nach dem Extrahieren bearbeiten.
import os
path = 'C:\Python35\\'
files = []
texts = []
for x in os.listdir(path):
if os.path.isfile(path + x):
files.append(x)
for y in files:
if(y[-4:] == '.txt'): #Extrahieren Sie die letzten 4 Zeichen des Dateinamens und das ist.Wenn txt
texts.append(y) #Zur Liste hinzufügen
print(texts)
Ausführungsergebnis
[‘Readme.txt’, ‘test.txt’]
Diese Methode verkompliziert jedoch den Code und die Länge variiert je nach Erweiterung. Daher ist es schwierig, ihn jedes Mal festzulegen. In solchen Fällen ist es erfrischend, die Glob-Funktion anstelle von listdir zu verwenden. Die Syntax von glob lautet wie folgt.
import os
path = 'C:\Python35\\'
files = []
texts = []
for x in os.listdir(path):
if os.path.isfile(path + x):
files.append(x)
for y in files:
if(y[-4:] == '.txt'): #Extrahieren Sie die letzten 4 Zeichen des Dateinamens und das ist.Wenn txt
texts.append(y) #Zur Liste hinzufügen
print(texts)
Die Glob-Funktion ist eine Funktion des Glob-Moduls. Importieren Sie daher unbedingt den Glob. Die glob-Funktion übergibt den Pfad auch als Argument. Im Gegensatz zu listdir können Sie jedoch nicht nur einen einzelnen Verzeichnisnamen, sondern auch einen einzelnen Dateinamen eingeben. Darüber hinaus können im glob-Argument Platzhalter (*) und reguläre Ausdrücke verwendet werden, die beliebige Zeichenfolgen bedeuten, sodass Sie problemlos nur eine bestimmte Datei abrufen können.
import glob
path = 'C:\Python35\\*.txt'
files = []
files = glob.glob(path)
print(files)
Ausführungsergebnis
[‘C:\Python35\Readme.txt’, ‘C:\Python35\test.txt’]
In diesem Beispiel wird "* .txt" als Pfad angegeben, sodass nur Dateien mit der Erweiterung .txt extrahiert werden. Wenn Sie die Glob-Funktion verwenden, können Sie die Datei in einem beliebigen Muster abrufen, indem Sie die Pfadspezifikationsmethode entwickeln.
Recommended Posts