os — grundläggande ”operativsystemstjänster”¶
Modulen os innehåller funktioner för filsystemsåtkomst och montering, terminalomdirigering och -duplicering, samt funktionerna uname och urandom.
Allmänna funktioner¶
- os.uname() Tuple[str, str, str, str, str]¶
Returnerar en tupel (möjligen en namngiven tupel) som innehåller information om den underliggande maskinen och/eller dess operativsystem. Tupeln har fem fält i följande ordning, vart och ett en sträng:
sysname– Namnet på det underliggande systemetnodename– Nätverksnamnet (kan vara samma somsysname)release– Versionen av det underliggande systemetversion– MicroPython-versionen och byggdatumetmachine– En identifierare för den underliggande hårdvaran (t.ex. kort, CPU)
- os.urandom(n: int) bytes¶
Returnerar ett bytes-objekt med n slumpmässiga byte. Källan är kryptografiskt lämplig på alla kameror som stöds, även om implementationen varierar mellan portar:
STM32-kameror (M4, M7, H7, H7+, PT, N6) använder STM32:s hårdvaru-RNG-kringutrustning.
i.MX RT1062-kameror (RT1060) använder chippets hårdvaru-TRNG.
Alif Ensemble-kameror (AE3) använder Secure Enclaves hårdvarutjänst för slumptal.
Arduino Nano 33 BLE Sense använder nRF52:s hårdvaru-RNG-kringutrustning.
Arduino Nano RP2040 Connect har ingen hårdvaru-TRNG; pico-sdk:s PRNG seedas och blandas kontinuerligt om med RP2040:s inbyggda entropikällor.
Filsystemsåtkomst¶
- os.ilistdir(dir: str | None = None) Iterator[Tuple]¶
Denna funktion returnerar en iterator som sedan ger tupler motsvarande posterna i den katalog som listas. Utan argument listas den aktuella katalogen, annars listas katalogen som anges av dir.
Tuplerna har formen (name, type, inode[, size]):
name är en sträng (eller bytes om dir är ett bytes-objekt) och är postens namn;
type är ett heltal som anger postens typ, med 0x4000 för kataloger och 0x8000 för vanliga filer;
inode är ett heltal som motsvarar filens inod och kan vara 0 för filsystem som inte har ett sådant begrepp.
size är ett heltal som kan inkluderas beroende på filsystemstypen. För filposter representerar size filens storlek eller -1 om okänd. Dess betydelse är för närvarande odefinierad för katalogposter.
- os.listdir(dir: str | None = None) List[str]¶
Utan argument listas den aktuella katalogen. Annars listas den angivna katalogen.
- os.statvfs(path: str) Tuple¶
Hämtar statusen för ett filsystem.
Returnerar en tupel med filsystemsinformationen i följande ordning:
f_bsize– Filsystemets blockstorlekf_frsize– Fragmentstorlekf_blocks– Filsystemets storlek i f_frsize-enheterf_bfree– Antal lediga blockf_bavail– Antal lediga block för icke-privilegierade användaref_files– Antal inoderf_ffree– Antal lediga inoderf_favail– Antal lediga inoder för icke-privilegierade användaref_flag– Monteringsflaggorf_namemax– Maximal filnamnslängd
Parametrar relaterade till inoder:
f_files,f_ffree,f_favailoch parameternf_flagkan returnera0eftersom de kan vara otillgängliga i en portspecifik implementation.
Terminalomdirigering och -duplicering¶
- os.dupterm(stream_object: Any, index: int = 0, /) Any¶
Duplicerar eller växlar MicroPython-terminalen (REPL) på det angivna stream-liknande objektet. Argumentet stream_object måste vara ett inbyggt strömobjekt, eller härledas från
io.IOBaseoch implementera metodernareadinto()ochwrite(). Strömmen bör vara i icke-blockerande läge ochreadinto()bör returneraNoneom det inte finns någon data tillgänglig att läsa.Efter att denna funktion anropats upprepas all terminalutmatning på denna ström, och all inmatning som är tillgänglig på strömmen skickas vidare till terminalinmatningen.
Parametern index bör vara ett icke-negativt heltal och anger vilken dupliceringsplats som ställs in. En given port kan implementera fler än en plats (plats 0 är alltid tillgänglig) och i så fall dupliceras terminalin- och utmatning på alla platser som är inställda.
Om
Noneskickas som stream_object avbryts dupliceringen på platsen som anges av index.Funktionen returnerar det tidigare strömliknande objektet i den angivna platsen.
- os.dupterm_notify(obj_in: Any, /) None¶
Meddelar MicroPython-REPL att inmatning är tillgänglig på ett strömliknande objekt som tidigare registrerats via
os.dupterm().Denna funktion bör anropas av anpassade strömimplementationer (t.ex. UART, Bluetooth eller andra REPL-strömmar som inte är USB) för att informera REPL om att inmatning är redo att läsas. Korrekt användning säkerställer att specialtecken som Ctrl+C (som används för att utlösa KeyboardInterrupt) bearbetas omgående av REPL, vilket möjliggör förväntat avbrottsbeteende för användarkod.
Parametern obj_in ignoreras av
os.dupterm_notify(), men krävs för att tillåta anrop av dupterm_notify från en avbrottshanterare somUART.irq().Exempel:
from machine import UART import os uart = UART(0) os.dupterm(uart, 0) uart.irq(os.dupterm_notify, machine.UART.IRQ_RX)
Anteckning
Om funktionen
dupterm_notify()inte anropas kanske inmatning från den anpassade strömmen inte upptäcks eller bearbetas förrän nästa REPL-pollning, vilket potentiellt fördröjer KeyboardInterrupts eller andra styrsignaler. Detta är särskilt viktigt för UART, Bluetooth och andra icke-standardiserade REPL-anslutningar, där automatisk avisering inte är garanterad.
Filsystemsmontering¶
Följande funktioner och klasser har flyttats till modulen vfs. De tillhandahålls i denna modul endast för bakåtkompatibilitet och kommer att tas bort i version 2 av MicroPython.
- os.mount(fsobj: Any, mount_point: str, *, readonly: bool = False) None¶
Monterar filsystemsobjektet fsobj på platsen i VFS som anges av strängen mount_point. fsobj kan vara ett VFS-objekt som har en
mount()-metod, eller en blockenhet. Om det är en blockenhet detekteras filsystemstypen automatiskt (ett undantag kastas om inget filsystem kändes igen). mount_point kan vara'/'för att montera fsobj i roten, eller'/<name>'för att montera det i en underkatalog under roten.Om readonly är
Truemonteras filsystemet skrivskyddat.Under monteringsprocessen anropas metoden
mount()på filsystemsobjektet.Kastar
OSError(EPERM)om mount_point redan är monterat.
- os.mount() List[Tuple[Any, str]]
Utan argument till
mount()returneras en lista med tupler som representerar alla aktiva monteringspunkter.Den returnerade listan har formen [(fsobj, mount_point), …].
- os.umount(mount_point: str | Any) None¶
Avmonterar ett filsystem. mount_point kan vara en sträng som namnger monteringsplatsen, eller ett tidigare monterat filsystemsobjekt. Under avmonteringsprocessen anropas metoden
umount()på filsystemsobjektet.Kastar
OSError(EINVAL)om mount_point inte hittas.
- class os.VfsFat(block_dev: AbstractBlockDev)¶
Skapar ett filsystemsobjekt som använder filsystemsformatet FAT. Lagringen av FAT-filsystemet tillhandahålls av block_dev. Objekt som skapas av denna konstruktor kan monteras med
mount().- static mkfs(block_dev: AbstractBlockDev) None¶
Bygger ett FAT-filsystem på block_dev.
- class os.VfsPosix(root: str | None = None)¶
Skapar ett filsystemsobjekt som kommer åt värdens POSIX-filsystem. Om root anges bör det vara en sökväg i värdfilsystemet som ska användas som rot för
VfsPosix-objektet. Annars används den aktuella katalogen i värdfilsystemet.Anteckning
VfsPosixär endast tillgängligt på Unix-porten; det finns inte på OpenMV Cam.