importlib.resources.abc
– Abstrakta basklasser för resurser¶
Källkod: Lib/importlib/resources/abc.py
Tillagd i version 3.11.
- class importlib.resources.abc.ResourceReader¶
Ersatt av TraversableResources
En abstrakt basklass för att ge möjlighet att läsa resurser.
I det här ABC:s perspektiv är en resurs en binär artefakt som levereras i ett paket. Vanligtvis är detta något som en datafil som lever bredvid paketets
__init__.py
-fil. Syftet med den här klassen är att hjälpa till att abstrahera åtkomsten till sådana datafiler så att det inte spelar någon roll om paketet och dess datafil(er) lagras t.ex. i en zip-fil eller i filsystemet.För alla metoder i denna klass förväntas ett resource-argument vara ett path-like object som konceptuellt bara representerar ett filnamn. Detta innebär att inga sökvägar till underkataloger bör inkluderas i resource-argumentet. Detta beror på att platsen för det paket som läsaren är avsedd för fungerar som ”katalog”. Därför är metaforen för kataloger och filnamn paket respektive resurser. Det är också därför som instanser av denna klass förväntas vara direkt korrelerade till ett specifikt paket (i stället för att potentiellt representera flera paket eller en modul).
Laddare som vill stödja resursläsning förväntas tillhandahålla en metod som heter
get_resource_reader(fullname)
som returnerar ett objekt som implementerar detta ABC-gränssnitt. Om den modul som anges av fullname inte är ett paket, bör denna metod returneraNone
. Ett objekt som är kompatibelt med denna ABC bör endast returneras när den angivna modulen är ett paket.Föråldrad sedan version 3.12: Använd
importlib.resources.abc.TraversableResources
istället.- abstractmethod open_resource(resource)¶
Returnerar ett öppnat, filliknande objekt för binär läsning av resursen.
Om resursen inte kan hittas genereras
FileNotFoundError
.
- abstractmethod resource_path(resource)¶
Returnerar filsystemets sökväg till resursen.
Om resursen inte finns i filsystemet, uppstår
FileNotFoundError
.
- abstractmethod is_resource(name)¶
Returnerar
True
om namnet name anses vara en resurs.FileNotFoundError
uppstår om name inte finns.
- abstractmethod contents()¶
Returnerar en iterable av strängar över innehållet i paketet. Observera att det inte är nödvändigt att alla namn som returneras av iteratorn är faktiska resurser, t.ex. är det acceptabelt att returnera namn för vilka
is_resource()
skulle vara false.Att tillåta att icke-resursnamn returneras är för att möjliggöra situationer där det på förhand är känt hur ett paket och dess resurser lagras och icke-resursnamnen skulle vara användbara. Det är t.ex. tillåtet att returnera namn på underkataloger så att dessa namn på underkataloger kan användas direkt när det är känt att paketet och resurserna lagras i filsystemet.
Den abstrakta metoden returnerar en iterabel utan objekt.
- class importlib.resources.abc.Traversable¶
Ett objekt med en delmängd av
pathlib.Path
-metoder som lämpar sig för genomgång av kataloger och öppning av filer.För en representation av objektet i filsystemet, använd
importlib.resources.as_file()
.- name¶
Abstrakt. Basnamnet för detta objekt utan några överordnade referenser.
- abstractmethod iterdir()¶
Yield Traverserbara objekt i self.
- abstractmethod is_dir()¶
Returnerar
True
om self är en katalog.
- abstractmethod is_file()¶
Returnerar
True
om self är en fil.
- abstractmethod joinpath(*pathsegments)¶
Traversera kataloger enligt vägsegment och returnera resultatet som
Traversable
.Varje pathsegments-argument kan innehålla flera namn åtskilda av snedstreck (
/
,posixpath.sep
). Till exempel är följande likvärdiga:files.joinpath('subdir', 'subsuddir', 'file.txt') files.joinpath('subdir/subsuddir/file.txt')
Observera att vissa
Traversable
-implementationer kanske inte är uppdaterade till den senaste versionen av protokollet. För kompatibilitet med sådana implementationer, ge ett enda argument utan sökvägsseparatorer till varje anrop tilljoinpath
. Till exempel:files.joinpath('subdir').joinpath('subsubdir').joinpath('file.txt')
Ändrad i version 3.11:
joinpath
accepterar flera sökvägssegment, och dessa segment kan innehålla snedstreck som sökvägsseparatorer. Tidigare accepterades endast ett enda child-argument.
- abstractmethod __truediv__(child)¶
Returnerar Traversable child i self. Motsvarar
joinpath(child)
.
- abstractmethod open(mode='r', *args, **kwargs)¶
mode kan vara ’r’ eller ’rb’ för att öppna som text eller binär. Returnerar ett handtag som är lämpligt för läsning (samma som
pathlib.Path.open
).När den öppnas som text accepteras kodningsparametrar som de som accepteras av
io.TextIOWrapper
.
- read_bytes()¶
Läser innehållet i sig själv som bytes.
- read_text(encoding=None)¶
Läs innehållet i dig själv som text.
- class importlib.resources.abc.TraversableResources¶
En abstrakt basklass för resursläsare som kan hantera
importlib.resources.files()
-gränssnittet. UnderklassificerarResourceReader
och tillhandahåller konkreta implementationer avResourceReader
s abstrakta metoder. Därför tillhandahåller alla laddare som tillhandahållerTraversableResources
ocksåResourceReader
.Laddare som vill stödja resursläsning förväntas implementera detta gränssnitt.
- abstractmethod files()¶
Returnerar ett
importlib.resources.abc.Traversable
-objekt för det laddade paketet.