Überprüfen Sie, ob der Generator in Python leer ist

Salman Mehmood 21 Juni 2023
Überprüfen Sie, ob der Generator in Python leer ist

In diesem Artikel wird erläutert, wie Sie überprüfen, ob ein Generator in Python leer ist.

Überprüfen Sie, ob der Generator in Python leer ist

Das Überprüfen, ob ein Generator in Python leer ist, bezieht sich auf einen Pfad, der überprüft wird, um sicherzustellen, dass er leer ist. Dazu muss der entsprechende Pfad zuvor entweder als Verzeichnis oder als Datei identifiziert werden, wodurch wir mühelos den erforderlichen Prüfansatz auswählen können.

Das folgende Snippet zeigt die Beteiligung zweier Platzhaltervariablen namens filepath und dirpath. Diese Variablen werden zur Identifizierung einer lokalen Datei und eines lokalen Verzeichnisses verwendet:

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

Die obigen Platzhaltervariablen können mit dem os-Modul in Python arbeiten, das als Standardpaket fungiert. Es kann mit Objekten, Funktionen und Konstanten verwendet werden, die mit dem entsprechenden Betriebssystem funktionieren.

Das os-Modul kann auch als os.path bezeichnet werden und beinhaltet isdir() und isfile(), die als Funktionen arbeiten. Diese Funktionen ermöglichen es den Benutzern, zwischen dem angegebenen Verzeichnis und einer beliebigen Datei zu unterscheiden.

Der Rückgabewert bei der Arbeit beider Funktionen ist ein boolescher Wert.

Betrachten Sie das folgende Beispiel:

import os

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

os.path.isfile(dirpath)  # False
os.path.isdir(dirpath)  # True
os.path.isfile(filepath)  # True
os.path.isdir(filepath)  # False

Die Funktionen isdir() und isfile() werden in diesem Beispiel als os.path.isdir bzw. os.path.isfile bezeichnet. Der Rückgabewert bei der Arbeit beider Funktionen ist ein boolescher Wert.

Das bedeutet, dass die Ausgabe der Implementierung dieser Funktionen entweder als True oder False zurückgegeben werden sollte. Die Rückgabewerte True und False zeigen anhand der jeweiligen Funktion an, ob es sich bei dem jeweiligen Pfad um eine Datei oder ein Verzeichnis handelt.

Nach dieser Bestätigung kann ein weiteres Modul namens pathlib in und nach der Version Python 3.4 verwendet werden. Mit diesem Modul ermöglicht eine objektorientierte Schnittstelle den Benutzern ein einfaches Arbeiten mit ihren Dateisystemen.

Dieses Modul sorgt für Vereinfachungen innerhalb der Implementierung gegenüber dem Modul os.path. Es hat eine Path-Klasse, die an seiner Arbeit beteiligt ist, wobei ein Pfad als Argument akzeptiert wird.

Danach wird ein Path-Objekt von diesem Pfad zurückgegeben, sodass die Benutzer es einfach mit Attributen und Methoden verketten oder abfragen können.

Sehen Sie sich das folgende Code-Snippet an:

from pathlib import Path

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

Path(dirpath).is_file()  # False
Path(dirpath).is_dir()  # True
Path(filepath).is_file()  # True
Path(dirpath).is_file()  # False

In diesem Snippet wird das Objekt Path daraufhin überprüft, ob es sich entweder um ein Verzeichnis oder eine Datei mit einem booleschen Wert als Rückgabewert handelt. Die Variablen dirpath und filepath sind auch am Objekt Path beteiligt, das den Methoden is_file() und is_dir() zugeordnet ist.

Ihre Implementierung gibt die Ausgabe entweder als True oder False zurück und zeigt entweder ein Verzeichnis oder eine Datei als Objekt an.

Der nächste Schritt besteht darin, zu prüfen, ob ein Generator leer ist und einen leeren Pfad oder eine leere Datei enthalten kann. Der Pfad oder die Datei kann auch als Null-Byte-Datei bezeichnet werden und kann unterschiedlichen Typs ohne Inhalt oder Daten sein.

Denken Sie daran, dass Dateien, die Metadaten ohne Daten enthalten, nicht unter den Begriff der leeren Dateien fallen. Dabei kann es sich sogar um Musikdateien handeln, die einen Autor enthalten.

Leere Dateien können auf Plattformen wie macOS und LINUX einfach erstellt werden. Hier ist ein Ausschnitt, wie das gemacht werden kann:

$ touch emptyfile

Das folgende Snippet zeigt, wie man das unter Windows macht:

$ type nul > emptyfile

Danach müssen wir Variablen definieren, mit denen eine nicht leere Datei oder eine leere Datei auf eine leere Datei zeigen kann. Diese leere Datei hat wahrscheinlich null Bytes, während die nicht leere Datei ein Byte groß ist.

Nachfolgend ein Beispiel, wie das aussehen kann:

emptyfile = "/mnt/f/code.books/articles/python/emptyfile"
nonemptyfile = "/mnt/f/code.books/articles/python/onebytefile"

Damit kann ein optionaler Parameter für die Funktion next() verwendet werden, mit dem Benutzer sicherstellen können, dass der Generator leer ist.

Hier ist ein Codeschnipsel dafür:

_exhausted = object()

if next(some_generator, _exhausted) is _exhausted:
    print("empty generator")

In diesem Ausschnitt wird der leere Generator durch einen erschöpften Iterator und die Verwendung eines Objekts gekennzeichnet. Danach wird eine if-Bedingung in die Implementierung eingefügt, die nach einem erschöpften Generator mit einem bestimmten Generatorwert sucht.

Im Fall eines leeren Generators ist die Bedingung erfüllt und die Implementierung gibt als Ausgabe einen leeren Generator zurück.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Verwandter Artikel - Python Generator