importlib.resources.abc – Abstrakte Basisklassen für Ressourcen¶
Quellcode: Lib/importlib/resources/abc.py
Hinzugefügt in Version 3.11.
- class importlib.resources.abc.ResourceReader¶
Abgelöst durch TraversableResources
Eine abstrakte Basisklasse, um die Fähigkeit zum Lesen von Ressourcen bereitzustellen.
Aus der Perspektive dieser ABC ist eine Ressource ein binäres Artefakt, das innerhalb eines Pakets ausgeliefert wird. Typischerweise handelt es sich dabei um eine Datendatei, die sich neben der
__init__.py-Datei des Pakets befindet. Der Zweck dieser Klasse ist es, den Zugriff auf solche Datendateien zu abstrahieren, sodass es keine Rolle spielt, ob das Paket und seine Datendatei(en) z. B. in einer Zip-Datei oder auf dem Dateisystem gespeichert sind.Für jede der Methoden dieser Klasse wird erwartet, dass ein Ressourcen-Argument ein pfadähnliches Objekt ist, das konzeptionell nur einen Dateinamen darstellt. Das bedeutet, dass keine Unterverzeichnispfade im Ressourcen-Argument enthalten sein sollten. Dies liegt daran, dass der Speicherort des Pakets, für das der Reader bestimmt ist, als "Verzeichnis" fungiert. Daher sind die Metaphern für Verzeichnisse und Dateinamen Pakete bzw. Ressourcen. Aus diesem Grund wird erwartet, dass Instanzen dieser Klasse direkt mit einem bestimmten Paket korrelieren (anstatt potenziell mehrere Pakete oder ein Modul darzustellen).
Loader, die das Lesen von Ressourcen unterstützen möchten, werden gebeten, eine Methode namens
get_resource_reader(fullname)bereitzustellen, die ein Objekt zurückgibt, das die Schnittstelle dieser ABC implementiert. Wenn das durch fullname spezifizierte Modul kein Paket ist, sollte diese MethodeNonezurückgeben. Ein mit dieser ABC kompatibles Objekt sollte nur zurückgegeben werden, wenn das angegebene Modul ein Paket ist.Veraltet seit Version 3.12: Verwenden Sie stattdessen
importlib.resources.abc.TraversableResources.- abstractmethod open_resource(resource)¶
Gibt ein geöffnetes, dateiähnliches Objekt für das binäre Lesen der Ressource zurück.
Wenn die Ressource nicht gefunden werden kann, wird
FileNotFoundErrorausgelöst.
- abstractmethod resource_path(resource)¶
Gibt den Dateisystempfad zur Ressource zurück.
Wenn die Ressource nicht konkret auf dem Dateisystem existiert, wird
FileNotFoundErrorausgelöst.
- abstractmethod is_resource(name)¶
Gibt
Truezurück, wenn der genannte Name als Ressource betrachtet wird.FileNotFoundErrorwird ausgelöst, wenn Name nicht existiert.
- abstractmethod contents()¶
Gibt ein iterierbares Objekt von Zeichenketten über den Inhalt des Pakets zurück. Beachten Sie, dass es nicht erforderlich ist, dass alle vom Iterator zurückgegebenen Namen tatsächliche Ressourcen sind; z. B. ist es akzeptabel, Namen zurückzugeben, für die
is_resource()falsch wäre.Das Zurückgeben von Nicht-Ressourcen-Namen ist erlaubt, um Situationen zu ermöglichen, in denen bekannt ist, wie ein Paket und seine Ressourcen gespeichert sind, und die Nicht-Ressourcen-Namen nützlich wären. Zum Beispiel dürfen Unterverzeichnisnamen zurückgegeben werden, sodass sie direkt verwendet werden können, wenn bekannt ist, dass das Paket und die Ressourcen auf dem Dateisystem gespeichert sind.
Die abstrakte Methode gibt ein leeres iterierbares Objekt zurück.
- class importlib.resources.abc.Traversable¶
Ein Objekt mit einer Teilmenge von Methoden von
pathlib.Path, das für das Durchlaufen von Verzeichnissen und das Öffnen von Dateien geeignet ist.Für eine Darstellung des Objekts auf dem Dateisystem verwenden Sie
importlib.resources.as_file().- name¶
Abstrakt. Der Basisname dieses Objekts ohne übergeordnete Referenzen.
- abstractmethod iterdir()¶
Yield Traversable-Objekte in self.
- abstractmethod is_dir()¶
Gibt
Truezurück, wenn self ein Verzeichnis ist.
- abstractmethod is_file()¶
Gibt
Truezurück, wenn self eine Datei ist.
- abstractmethod joinpath(*pathsegments)¶
Durchläuft Verzeichnisse gemäß pathsegments und gibt das Ergebnis als
Traversablezurück.Jedes pathsegments-Argument kann mehrere Namen enthalten, die durch Schrägstriche (
/,posixpath.sep) getrennt sind. Zum Beispiel sind die folgenden gleichwertigfiles.joinpath('subdir', 'subsuddir', 'file.txt') files.joinpath('subdir/subsuddir/file.txt')
Beachten Sie, dass einige
Traversable-Implementierungen möglicherweise nicht auf die neueste Version des Protokolls aktualisiert wurden. Für die Kompatibilität mit solchen Implementierungen geben Sie ein einzelnes Argument ohne Pfadtrennzeichen bei jedem Aufruf vonjoinpathan. Zum Beispielfiles.joinpath('subdir').joinpath('subsubdir').joinpath('file.txt')
Geändert in Version 3.11:
joinpathakzeptiert mehrere pathsegments, und diese Segmente können Schrägstriche als Pfadtrennzeichen enthalten. Zuvor wurde nur ein einzelnes child-Argument akzeptiert.
- abstractmethod __truediv__(child)¶
Gibt ein Traversable-Kind in self zurück. Äquivalent zu
joinpath(child).
- abstractmethod open(mode='r', *args, **kwargs)¶
mode kann 'r' oder 'rb' sein, um als Text oder Binär zu öffnen. Gibt ein Lese-Handle zurück (wie bei
pathlib.Path.open).Beim Öffnen als Text werden Codierungsparameter akzeptiert, wie sie von
io.TextIOWrapperakzeptiert werden.
- read_bytes()¶
Liest den Inhalt von self als Bytes.
- read_text(encoding=None)¶
Liest den Inhalt von self als Text.
- class importlib.resources.abc.TraversableResources¶
Eine abstrakte Basisklasse für Ressourcen-Reader, die die
importlib.resources.files()-Schnittstelle bedienen können. Erbt vonResourceReaderund bietet konkrete Implementierungen der abstrakten Methoden vonResourceReader. Daher liefert jeder Loader, derTraversableResourcesbereitstellt, auchResourceReader.Loader, die das Lesen von Ressourcen unterstützen möchten, werden gebeten, diese Schnittstelle zu implementieren.
- abstractmethod files()¶
Gibt ein
importlib.resources.abc.Traversable-Objekt für das geladene Paket zurück.