os — Diverse gränssnitt för operativsystem

Källkod: Lib/os.py


Denna modul ger ett portabelt sätt att använda operativsystemberoende funktionalitet. Om du bara vill läsa eller skriva en fil, se open(), om du vill manipulera sökvägar, se os.path-modulen, och om du vill läsa alla rader i alla filer på kommandoraden, se fileinput-modulen. För att skapa temporära filer och kataloger, se modulen tempfile, och för fil- och kataloghantering på hög nivå, se modulen shutil.

Anteckningar om tillgängligheten för dessa funktioner:

  • Utformningen av alla inbyggda operativsystemberoende moduler i Python är sådan att så länge samma funktionalitet finns tillgänglig använder den samma gränssnitt; till exempel returnerar funktionen os.stat(path) statinformation om path i samma format (som råkar ha sitt ursprung i POSIX-gränssnittet).

  • Tillägg som är specifika för ett visst operativsystem är också tillgängliga via modulen os, men att använda dem är naturligtvis ett hot mot portabiliteten.

  • Alla funktioner som accepterar sökvägar eller filnamn accepterar både bytes och strängobjekt, och resulterar i ett objekt av samma typ om en sökväg eller ett filnamn returneras.

  • På VxWorks stöds inte os.popen, os.fork, os.execv och os.spawn*p*.

  • På WebAssembly-plattformar, Android och iOS, är stora delar av modulen os inte tillgängliga eller beter sig annorlunda. API:er relaterade till processer (t.ex. fork(), execve()) och resurser (t.ex. nice()) är inte tillgängliga. Andra som getuid() och getpid() är emulerade eller stubbar. WebAssembly-plattformar saknar också stöd för signaler (t.ex. kill(), wait()).

Anteckning

Alla funktioner i den här modulen ger upphov till OSError (eller underklasser till dessa) om filnamn och sökvägar är ogiltiga eller otillgängliga, eller om andra argument av rätt typ inte accepteras av operativsystemet.

exception os.error

Ett alias för det inbyggda undantaget OSError.

os.name

Namnet på den operativsystemberoende modul som importeras. Följande namn har för närvarande registrerats: 'posix', 'nt', 'java'.

Se även

sys.platform har en finare granularitet. os.uname() ger systemberoende versionsinformation.

Modulen platform ger detaljerade kontroller av systemets identitet.

Filnamn, kommandoradsargument och miljövariabler

I Python representeras filnamn, kommandoradsargument och miljövariabler med hjälp av strängtypen. På vissa system är det nödvändigt att avkoda dessa strängar till och från bytes innan de skickas till operativsystemet. Python använder filesystem encoding and error handler för att utföra denna konvertering (se sys.getfilesystemencoding()).

filesystem encoding and error handler konfigureras vid Python-start av funktionen PyConfig_Read(): se filesystem_encoding och filesystem_errors i PyConfig.

Ändrad i version 3.1: På vissa system kan konvertering med hjälp av filsystemets kodning misslyckas. I detta fall använder Python surrogateescape encoding error handler, vilket innebär att oavkodbara byte ersätts med ett Unicode-tecken U+DCxx vid avkodning, och dessa översätts igen till den ursprungliga byten vid kodning.

Den file system encoding måste garantera att alla byte under 128 avkodas framgångsrikt. Om filsystemets kodning inte kan ge denna garanti kan API-funktioner ge upphov till UnicodeError.

Se även locale encoding.

Python UTF-8-läge

Tillagd i version 3.7: Se PEP 540 för mer information.

Pythons UTF-8-läge ignorerar locale encoding och tvingar fram användning av UTF-8-kodning:

Observera att standardinställningarna för strömmar i UTF-8-läge kan åsidosättas med PYTHONIOENCODING (precis som de kan i standardläget för lokalmedvetenhet).

Som en följd av förändringarna i dessa API:er på lägre nivå uppvisar även andra API:er på högre nivå olika standardbeteenden:

  • Argument på kommandoraden, miljövariabler och filnamn avkodas till text med UTF-8-kodning.

  • os.fsdecode() och os.fsencode() använder UTF-8-kodning.

  • open(), io.open() och codecs.open() använder UTF-8-kodning som standard. De använder dock fortfarande den strikta felhanteringen som standard så att försök att öppna en binär fil i textläge sannolikt kommer att leda till ett undantag snarare än att producera nonsensdata.

Funktionen Python UTF-8 Mode aktiveras om LC_CTYPE locale är C eller POSIX vid Python-start (se funktionen PyConfig_Read()).

Det kan aktiveras eller inaktiveras med hjälp av kommandoradsoptionen -X utf8 och miljövariabeln PYTHONUTF8.

Om miljövariabeln PYTHONUTF8 inte anges alls, använder tolken som standard de aktuella locale-inställningarna, såvida inte den aktuella locale identifieras som en äldre ASCII-baserad locale (enligt beskrivningen för PYTHONCOERCECLOCALE), och locale-coercion antingen är inaktiverat eller misslyckas. I sådana äldre lokalspråk kommer tolken att aktivera UTF-8-läge som standard, om den inte uttryckligen instrueras att inte göra det.

Pythons UTF-8-läge kan endast aktiveras vid Python-start. Dess värde kan läsas från sys.flags.utf8_mode.

Se även UTF-8-läge på Windows och filesystem encoding and error handler.

Se även

PEP 686

Python 3.15 kommer att göra Python UTF-8-läge till standard.

Processparametrar

Dessa funktioner och dataelement ger information och fungerar på den aktuella processen och användaren.

os.ctermid()

Returnerar filnamnet som motsvarar processens kontrollterminal.

Tillgänglighet: Unix, not WASI.

os.environ

Ett mapping-objekt där nycklar och värden är strängar som representerar processmiljön. Exempelvis är environ['HOME'] sökvägen till din hemkatalog (på vissa plattformar) och motsvarar getenv("HOME") i C.

Denna mappning registreras första gången modulen os importeras, vanligtvis under Python-start som en del av bearbetningen av site.py. Ändringar i miljön som görs efter denna tidpunkt återspeglas inte i os.environ, med undantag för ändringar som görs genom att ändra os.environ direkt.

Denna mappning kan användas för att ändra miljön samt för att fråga om miljön. putenv() anropas automatiskt när mappningen ändras.

På Unix använder nycklar och värden sys.getfilesystemencoding() och felhanteraren 'surrogateescape'. Använd environb om du vill använda en annan kodning.

I Windows konverteras tangenterna till versaler. Detta gäller även när du hämtar, ställer in eller tar bort ett objekt. Exempelvis mappar environ['monty'] = 'python' nyckeln 'MONTY' till värdet 'python'.

Anteckning

Att anropa putenv() direkt ändrar inte os.environ, så det är bättre att ändra os.environ.

Anteckning

På vissa plattformar, inklusive FreeBSD och macOS, kan inställningen environ orsaka minnesläckage. Se systemdokumentationen för putenv().

Du kan ta bort objekt i den här mappningen för att återställa miljövariabler. unsetenv() anropas automatiskt när ett objekt tas bort från os.environ och när någon av metoderna pop() eller clear() anropas.

Se även

Funktionen os.reload_environ().

Ändrad i version 3.9: Uppdaterad för att stödja PEP 584:s operatorer för sammanslagning (|) och uppdatering (|=).

os.environb

Bytesversion av environ: ett mapping-objekt där både nycklar och värden är bytes-objekt som representerar processmiljön. environ och environb är synkroniserade (om du ändrar environb uppdateras environ och vice versa).

environb är endast tillgängligt om supports_bytes_environ är True.

Tillagd i version 3.2.

Ändrad i version 3.9: Uppdaterad för att stödja PEP 584:s operatorer för sammanslagning (|) och uppdatering (|=).

os.reload_environ()

Mappningarna os.environ och os.environb är en cache av miljövariabler vid den tidpunkt då Python startade. Därför återspeglas inte ändringar i den aktuella processmiljön om de görs utanför Python, eller av os.putenv() eller os.unsetenv(). Använd os.reload_environ() för att uppdatera os.environ och os.environb med alla sådana ändringar i den aktuella processmiljön.

Varning

Denna funktion är inte trådsäker. Att anropa den medan miljön modifieras i en annan tråd är ett odefinierat beteende. Läsning från os.environ eller os.environb, eller anrop av os.getenv() under omladdning, kan ge ett tomt resultat.

Tillagd i version 3.14.

os.chdir(path)
os.fchdir(fd)
os.getcwd()

Dessa funktioner beskrivs i Filer och kataloger.

os.fsencode(filename)

Kodar sökvägsliknande filename till filesystem encoding and error handler; returnerar bytes oförändrad.

fsdecode() är den omvända funktionen.

Tillagd i version 3.2.

Ändrad i version 3.6: Stöd har lagts till för att acceptera objekt som implementerar gränssnittet os.PathLike.

os.fsdecode(filename)

Avkodar sökvägsliknande filename från filesystem encoding and error handler; returnerar str oförändrad.

fsencode() är den omvända funktionen.

Tillagd i version 3.2.

Ändrad i version 3.6: Stöd har lagts till för att acceptera objekt som implementerar gränssnittet os.PathLike.

os.fspath(path)

Returnerar filsystemets representation av sökvägen.

Om str eller bytes skickas in returneras det oförändrat. Annars anropas __fspath__() och dess värde returneras så länge det är ett str- eller bytes-objekt. I alla andra fall genereras TypeError.

Tillagd i version 3.6.

class os.PathLike

En abstrakt basklass för objekt som representerar en filsystemssökväg, t.ex. pathlib.PurePath.

Tillagd i version 3.6.

abstractmethod __fspath__()

Returnerar filsystemets sökvägsrepresentation av objektet.

Metoden bör endast returnera ett str- eller bytes-objekt, med företräde för str.

os.getenv(key, default=None)

Returnerar värdet på miljövariabeln key som en sträng om den finns, eller default om den inte finns. key är en sträng. Observera att eftersom getenv() använder os.environ, fångas mappningen av getenv() på samma sätt vid import, och funktionen kanske inte återspeglar framtida miljöförändringar.

På Unix avkodas nycklar och värden med sys.getfilesystemencoding() och felhanteraren 'surrogateescape'. Använd os.getenvb() om du vill använda en annan kodning.

Tillgänglighet: Unix, Windows.

os.getenvb(key, default=None)

Returnerar värdet på miljövariabeln key som bytes om den finns, eller default om den inte finns. key måste vara bytes. Observera att eftersom getenvb() använder os.environb, fångas mappningen av getenvb() på samma sätt vid import, och funktionen kanske inte återspeglar framtida miljöförändringar.

getenvb() är endast tillgängligt om supports_bytes_environ är True.

Tillagd i version 3.2.

os.get_exec_path(env=None)

Returnerar listan över kataloger som kommer att sökas efter en namngiven körbar fil, liknande ett skal, när en process startas. env, när det anges, ska vara en miljövariabelordbok som PATH ska sökas i. Som standard, när env är None, används environ.

Tillagd i version 3.2.

os.getegid()

Returnerar det effektiva grupp-ID:t för den aktuella processen. Detta motsvarar ”set id”-biten i den fil som körs i den aktuella processen.

Tillgänglighet: Unix, not WASI.

os.geteuid()

Returnerar den aktuella processens effektiva användar-ID.

Tillgänglighet: Unix, not WASI.

os.getgid()

Returnerar det verkliga grupp-ID:t för den aktuella processen.

Tillgänglighet: Unix.

Funktionen är en stub på WASI, se WebAssembly-plattformar för mer information.

os.getgrouplist(user, group, /)

Returnerar listan med grupp-ID:n som användare tillhör. Om group inte finns i listan inkluderas den; vanligtvis anges group som grupp-ID-fältet från lösenordsposten för user, eftersom det grupp-ID:t annars potentiellt kan utelämnas.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.3.

os.getgroups()

Returnera listan med kompletterande grupp-ID:n som är associerade med den aktuella processen.

Tillgänglighet: Unix, not WASI.

Anteckning

På macOS skiljer sig getgroups() beteende något från andra Unix-plattformar. Om Python-tolken byggdes med ett implementeringsmål på 10.5 eller tidigare, returnerar getgroups() listan över effektiva grupp-id:n som är associerade med den aktuella användarprocessen; denna lista är begränsad till ett systemdefinierat antal poster, vanligtvis 16, och kan ändras genom anrop till setgroups() om det finns lämpliga privilegier. Om den byggs med ett distributionsmål som är större än 10.5 returnerar getgroups() den aktuella gruppåtkomstlistan för den användare som är associerad med processens effektiva användar-ID; gruppåtkomstlistan kan ändras under processens livstid, den påverkas inte av anrop till setgroups() och dess längd är inte begränsad till 16. Deployment target-värdet, MACOSX_DEPLOYMENT_TARGET, kan erhållas med sysconfig.get_config_var().

os.getlogin()

Returnerar namnet på den användare som är inloggad på processens kontrollterminal. För de flesta ändamål är det mer användbart att använda getpass.getuser() eftersom den senare kontrollerar miljövariablerna LOGNAME eller USERNAME för att ta reda på vem användaren är, och faller tillbaka på pwd.getpwuid(os.getuid())[0] för att få inloggningsnamnet för det aktuella verkliga användar-id:et.

Tillgänglighet: Unix, Windows, not WASI.

os.getpgid(pid)

Returnerar processgrupps-id för processen med process-id pid. Om pid är 0 returneras processgrupps-id för den aktuella processen.

Tillgänglighet: Unix, not WASI.

os.getpgrp()

Returnerar id för den aktuella processgruppen.

Tillgänglighet: Unix, not WASI.

os.getpid()

Returnerar det aktuella process-ID:t.

Funktionen är en stub på WASI, se WebAssembly-plattformar för mer information.

os.getppid()

Returnerar den överordnade processens id. När den överordnade processen har avslutats är det id som returneras på Unix init-processens id (1), på Windows är det fortfarande samma id, som kanske redan återanvänds av en annan process.

Tillgänglighet: Unix, Windows, not WASI.

Ändrad i version 3.2: Stöd för Windows har lagts till.

os.getpriority(which, who)

Hämta prioritet för programschemaläggning. Värdet which är ett av PRIO_PROCESS, PRIO_PGRP eller PRIO_USER, och who tolkas i förhållande till which (en processidentifierare för PRIO_PROCESS, en processgruppsidentifierare för PRIO_PGRP och ett användar-ID för PRIO_USER). Ett nollvärde för who betecknar (respektive) den anropande processen, den anropande processens processgrupp eller den anropande processens verkliga användar-ID.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.3.

os.PRIO_PROCESS
os.PRIO_PGRP
os.PRIO_USER

Parametrar för funktionerna getpriority() och setpriority().

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.3.

os.PRIO_DARWIN_THREAD
os.PRIO_DARWIN_PROCESS
os.PRIO_DARWIN_BG
os.PRIO_DARWIN_NONUI

Parametrar för funktionerna getpriority() och setpriority().

Tillagd i version 3.12.

os.getresuid()

Returnerar en tupel (ruid, euid, suid) som anger den aktuella processens verkliga, effektiva och sparade användar-id.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.2.

os.getresgid()

Returnerar en tupel (rgid, egid, sgid) som anger den aktuella processens verkliga, effektiva och sparade grupp-id.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.2.

os.getuid()

Returnerar den aktuella processens riktiga användar-ID.

Tillgänglighet: Unix.

Funktionen är en stub på WASI, se WebAssembly-plattformar för mer information.

os.initgroups(username, gid, /)

Anropa systemet initgroups() för att initiera gruppåtkomstlistan med alla de grupper som det angivna användarnamnet är medlem i, plus det angivna grupp-ID:t.

Tillgänglighet: Unix, not WASI, not Android.

Tillagd i version 3.2.

os.putenv(key, value, /)

Ställ in miljövariabeln med namnet key till strängen value. Sådana ändringar i miljön påverkar underprocesser som startas med os.system(), popen() eller fork() och execv().

Tilldelningar till objekt i os.environ översätts automatiskt till motsvarande anrop till putenv(); anrop till putenv() uppdaterar dock inte os.environ, så det är faktiskt att föredra att tilldela till objekt i os.environ. Detta gäller även getenv() och getenvb(), som använder os.environ respektive os.environb i sina implementationer.

Se även funktionen os.reload_environ().

Anteckning

På vissa plattformar, inklusive FreeBSD och macOS, kan inställningen environ orsaka minnesläckage. Se systemdokumentationen för putenv().

Utlöser en auditing event os.putenv med argumenten key, value.

Ändrad i version 3.9: Funktionen är nu alltid tillgänglig.

os.setegid(egid, /)

Ange den aktuella processens effektiva grupp-ID.

Tillgänglighet: Unix, not WASI, not Android.

os.seteuid(euid, /)

Ange den aktuella processens effektiva användar-ID.

Tillgänglighet: Unix, not WASI, not Android.

os.setgid(gid, /)

Ange grupp-ID för den aktuella processen.

Tillgänglighet: Unix, not WASI, not Android.

os.setgroups(groups, /)

Ställ in listan över kompletterande grupp-id:n som associeras med den aktuella processen till groups. groups måste vara en sekvens och varje element måste vara ett heltal som identifierar en grupp. Denna åtgärd är vanligtvis endast tillgänglig för superanvändaren.

Tillgänglighet: Unix, not WASI.

Anteckning

På macOS får längden på groups inte överstiga det systemdefinierade maximala antalet effektiva grupp-id:n, vanligtvis 16. Se dokumentationen för getgroups() för fall där den kanske inte returnerar samma grupplista som ställts in genom anrop av setgroups().

os.setns(fd, nstype=0)

Kopplar om den aktuella tråden till ett Linux-namnrymd. Se manualerna setns(2) och namespaces(7) för mer information.

Om fd refererar till en /proc/pid/ns/ länk, setns() återassocierar den anropande tråden med namnrymden som associeras med länken, och nstype kan sättas till en av CLONE_NEW* konstanterna för att införa begränsningar för operationen (0 betyder inga begränsningar).

Sedan Linux 5.8 kan fd referera till en PID-filbeskrivare som erhållits från pidfd_open(). I detta fall återassocierar setns() den anropande tråden till ett eller flera av samma namnrymder som den tråd som fd refererar till. Detta är föremål för eventuella begränsningar som åläggs av nstype, som är en bitmask som kombinerar en eller flera av CLONE_NEW*-konstanterna, t.ex. setns(fd, os.CLONE_NEWUTS | os.CLONE_NEWPID). Anroparens medlemskap i ospecificerade namnrymder lämnas oförändrade.

fd kan vara vilket objekt som helst med en fileno()-metod eller en rå filbeskrivare.

I detta exempel kopplas tråden om till init-processens nätverksnamnrymd:

fd = os.open("/proc/1/ns/net", os.O_RDONLY)
os.setns(fd, os.CLONE_NEWNET)
os.close(fd)

Tillgänglighet: Linux >= 3.0 with glibc >= 2.14.

Tillagd i version 3.12.

Se även

Funktionen unshare().

os.setpgrp()

Anropa systemanropet setpgrp() eller setpgrp(0, 0) beroende på vilken version som är implementerad (om någon). Se Unix-manualen för semantiken.

Tillgänglighet: Unix, not WASI.

os.setpgid(pid, pgrp, /)

Anropa systemanropet setpgid() för att ange processgrupps-id för processen med id pid till processgruppen med id pgrp. Se Unix-manualen för semantiken.

Tillgänglighet: Unix, not WASI.

os.setpriority(which, who, priority)

Ställer in prioritet för programschemaläggning. Värdet which är ett av PRIO_PROCESS, PRIO_PGRP eller PRIO_USER, och who tolkas i förhållande till which (en processidentifierare för PRIO_PROCESS, en processgruppsidentifierare för PRIO_PGRP och ett användar-ID för PRIO_USER). Ett nollvärde för who betecknar (respektive) den anropande processen, den anropande processens processgrupp eller den anropande processens verkliga användar-ID. priority är ett värde i intervallet -20 till 19. Standardprioriteten är 0; lägre prioriteringar ger en mer gynnsam schemaläggning.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.3.

os.setregid(rgid, egid, /)

Ange den aktuella processens verkliga och effektiva grupp-ID:n.

Tillgänglighet: Unix, not WASI, not Android.

os.setresgid(rgid, egid, sgid, /)

Ange den aktuella processens verkliga, effektiva och sparade grupp-id:n.

Tillgänglighet: Unix, not WASI, not Android.

Tillagd i version 3.2.

os.setresuid(ruid, euid, suid, /)

Ange den aktuella processens verkliga, effektiva och sparade användar-ID:n.

Tillgänglighet: Unix, not WASI, not Android.

Tillagd i version 3.2.

os.setreuid(ruid, euid, /)

Ange den aktuella processens verkliga och effektiva användar-id.

Tillgänglighet: Unix, not WASI, not Android.

os.getsid(pid, /)

Anropa systemanropet getsid(). Se Unix-manualen för semantiken.

Tillgänglighet: Unix, not WASI.

os.setsid()

Anropa systemanropet setsid(). Se Unix-manualen för semantiken.

Tillgänglighet: Unix, not WASI.

os.setuid(uid, /)

Ange användar-ID för den aktuella processen.

Tillgänglighet: Unix, not WASI, not Android.

os.strerror(code, /)

Returnerar felmeddelandet som motsvarar felkoden i code. På plattformar där strerror() returnerar NULL när det ges ett okänt felnummer, uppstår ValueError.

os.supports_bytes_environ

True om den ursprungliga OS-typen för miljön är bytes (t.ex. False på Windows).

Tillagd i version 3.2.

os.umask(mask, /)

Ställ in den aktuella numeriska umasken och returnera den föregående umasken.

Funktionen är en stub på WASI, se WebAssembly-plattformar för mer information.

os.uname()

Returnerar information som identifierar det aktuella operativsystemet. Returvärdet är ett objekt med fem attribut:

  • sysname - namn på operativsystemet

  • nodename - namn på maskin i nätverk (implementationsdefinierat)

  • release - version av operativsystemet

  • version - version av operativsystemet

  • machine - identifierare för maskinvara

För bakåtkompatibilitet är detta objekt också itererbart och beter sig som en femtupel som innehåller sysname, nodename, release, version och machine i den ordningen.

Vissa system trunkerar nodename till 8 tecken eller till den inledande komponenten; ett bättre sätt att få fram värdnamnet är socket.gethostname() eller till och med socket.gethostbyaddr(socket.gethostname()).

På macOS, iOS och Android returnerar detta kärnans namn och version (dvs. 'Darwin' på macOS och iOS; 'Linux' på Android). platform.uname() kan användas för att få namnet och versionen på det operativsystem som vänder sig till användaren på iOS och Android.

Ändrad i version 3.3: Returtypen ändrades från en tupel till ett tupelliknande objekt med namngivna attribut.

os.unsetenv(key, /)

Ta bort (unset) miljövariabeln med namnet key. Sådana ändringar i miljön påverkar underprocesser som startas med os.system(), popen() eller fork() och execv().

Radering av objekt i os.environ översätts automatiskt till ett motsvarande anrop till unsetenv(); anrop till unsetenv() uppdaterar dock inte os.environ, så det är faktiskt att föredra att radera objekt i os.environ.

Se även funktionen os.reload_environ().

Utlöser en auditing event os.unsetenv med argumentet key.

Ändrad i version 3.9: Funktionen är nu alltid tillgänglig och finns även i Windows.

os.unshare(flags)

Avskiljer delar av processens exekveringskontext och flyttar dem till ett nyskapat namnrymd. Se unshare(2) man page för mer information. Argumentet flags är en bitmask som kombinerar noll eller flera av CLONE_*-konstanterna, som anger vilka delar av exekveringskontexten som ska skiljas från sina befintliga associationer och flyttas till ett nytt namnrymd. Om argumentet flags är 0 görs inga ändringar i den anropande processens exekveringskontext.

Tillgänglighet: Linux >= 2.6.16.

Tillagd i version 3.12.

Se även

Funktionen setns().

Flaggor till funktionen unshare(), om implementationen stödjer dem. Se unshare(2) i Linux-manualen för deras exakta effekt och tillgänglighet.

os.CLONE_FILES
os.CLONE_FS
os.CLONE_NEWCGROUP
os.CLONE_NEWIPC
os.CLONE_NEWNET
os.CLONE_NEWNS
os.CLONE_NEWPID
os.CLONE_NEWTIME
os.CLONE_NEWUSER
os.CLONE_NEWUTS
os.CLONE_SIGHAND
os.CLONE_SYSVSEM
os.CLONE_THREAD
os.CLONE_VM

Skapande av filobjekt

Dessa funktioner skapar nya filobjekt. (Se även open() för att öppna filbeskrivare)

os.fdopen(fd, *args, **kwargs)

Returnerar ett öppet filobjekt som är anslutet till filbeskrivaren fd. Detta är ett alias för den inbyggda funktionen open() och accepterar samma argument. Den enda skillnaden är att det första argumentet i fdopen() alltid måste vara ett heltal.

Operationer för filbeskrivare

Dessa funktioner arbetar med I/O-strömmar som refereras med hjälp av filbeskrivare.

File descriptors är små heltal som motsvarar en fil som har öppnats av den aktuella processen. Till exempel är standardinmatning vanligtvis fildeskriptor 0, standardutmatning är 1 och standardfel är 2. Ytterligare filer som öppnas av en process tilldelas sedan 3, 4, 5 och så vidare. Namnet ”file descriptor” är något missvisande; på Unix-plattformar refereras även sockets och pipes till file descriptors.

Metoden fileno() kan användas för att erhålla den filbeskrivning som är associerad med ett file object när så krävs. Observera att om du använder filbeskrivaren direkt kommer du att kringgå filobjektets metoder och ignorera aspekter som intern buffring av data.

os.close(fd)

Stäng filbeskrivaren fd.

Anteckning

Denna funktion är avsedd för I/O på låg nivå och måste tillämpas på en filbeskrivare som returneras av os.open() eller pipe(). För att stänga ett ”filobjekt” som returneras av den inbyggda funktionen open() eller av popen() eller fdopen(), använd dess close() metod.

os.closerange(fd_low, fd_high, /)

Stänger alla filbeskrivare från fd_low (inklusive) till fd_high (exklusive), ignorerar fel. Motsvarar (men är mycket snabbare än):

för fd i intervallet(fd_low, fd_high):
    försök:
        os.close(fd)
    utom OSError:
        passera
os.copy_file_range(src, dst, count, offset_src=None, offset_dst=None)

Kopiera count bytes från filbeskrivaren src, med start från offset offset_src, till filbeskrivaren dst, med start från offset offset_dst. Om offset_src är None läses src från den aktuella positionen; motsvarande gäller för offset_dst.

I Linuxkärnan äldre än 5.3 måste filerna som src och dst pekar på finnas i samma filsystem, annars uppstår ett OSError med errno satt till errno.EXDEV.

Denna kopiering görs utan den extra kostnad som det innebär att överföra data från kärnan till användarutrymmet och sedan tillbaka till kärnan. Dessutom kan vissa filsystem implementera extra optimeringar, t.ex. användning av reflinks (dvs. två eller flera inoder som delar pekare till samma copy-on-write-diskblock; filsystem som stöds är bl.a. btrfs och XFS) och kopiering på serversidan (i fallet NFS).

Funktionen kopierar bytes mellan två filbeskrivare. Textalternativ, som kodning och radavslut, ignoreras.

Returvärdet är det antal byte som kopierats. Detta kan vara mindre än det begärda antalet.

Anteckning

Under Linux bör os.copy_file_range() inte användas för att kopiera ett intervall av en pseudofil från ett speciellt filsystem som procfs och sysfs. Den kopierar alltid inga byte och returnerar 0 som om filen vore tom på grund av ett känt problem i Linux-kärnan.

Tillgänglighet: Linux >= 4.5 with glibc >= 2.27.

Tillagd i version 3.8.

os.device_encoding(fd)

Returnerar en sträng som beskriver kodningen för den enhet som är associerad med fd om den är ansluten till en terminal; annars returneras None.

På Unix, om Python UTF-8 Mode är aktiverat, returneras 'UTF-8' istället för enhetens kodning.

Ändrad i version 3.10: På Unix implementerar funktionen nu Pythons UTF-8-läge.

os.dup(fd, /)

Returnerar en duplikat av filbeskrivaren fd. Den nya filbeskrivaren är icke-ärftlig.

I Windows, vid duplicering av en standardström (0: stdin, 1: stdout, 2: stderr), är den nya filbeskrivaren inheritable.

Tillgänglighet: not WASI.

Ändrad i version 3.4: Den nya filbeskrivaren är nu inte ärftlig.

os.dup2(fd, fd2, inheritable=True)

Duplicera filbeskrivaren fd till fd2, och stäng den senare först om det behövs. Returnera fd2. Den nya filbeskrivaren är inheritable som standard eller icke-heritable om inheritable är False.

Tillgänglighet: not WASI.

Ändrad i version 3.4: Lägg till den valfria parametern inheritable.

Ändrad i version 3.7: Returnerar fd2 vid framgång. Tidigare returnerades alltid None.

os.fchmod(fd, mode)

Ändra läget för filen som ges av fd till det numeriska mode. Se dokumentationen för chmod() för möjliga värden för mode. Från och med Python 3.3 är detta likvärdigt med os.chmod(fd, mode).

Utlöser en auditing-händelse os.chmod med argumenten path, mode, dir_fd.

Tillgänglighet: Unix, Windows.

Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.

Ändrad i version 3.13: Stöd för Windows har lagts till.

os.fchown(fd, uid, gid)

Ändra ägar- och grupp-ID för filen som anges av fd till de numeriska värdena uid och gid. För att lämna ett av id:en oförändrat, sätt det till -1. Se chown(). Från och med Python 3.3 är detta likvärdigt med os.chown(fd, uid, gid).

Utlöser en auditing-händelse os.chown med argumenten path, uid, gid, dir_fd.

Tillgänglighet: Unix.

Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.

os.fdatasync(fd)

Tvingar fram skrivning av fil med fildeskriptor fd till disk. Tvingar inte till uppdatering av metadata.

Anteckning

Denna funktion är inte tillgänglig på MacOS.

os.fpathconf(fd, name, /)

Returnerar information om systemkonfiguration som är relevant för en öppen fil. name anger det konfigurationsvärde som ska hämtas; det kan vara en sträng som är namnet på ett definierat systemvärde; dessa namn anges i ett antal standarder (POSIX.1, Unix 95, Unix 98 m.fl.). Vissa plattformar definierar även ytterligare namn. De namn som är kända av värdoperativsystemet anges i ordlistan pathconf_names. För konfigurationsvariabler som inte ingår i denna mappning accepteras också att name ersätts med ett heltal.

Om name är en sträng och inte är känd, genereras ValueError. Om ett specifikt värde för name inte stöds av värdsystemet, även om det ingår i pathconf_names, genereras ett OSError med errno.EINVAL som felnummer.

Från och med Python 3.3 är detta likvärdigt med os.pathconf(fd, name).

os.fstat(fd)

Hämta status för filbeskrivaren fd. Returnerar ett stat_result-objekt.

Från och med Python 3.3 är detta likvärdigt med os.stat(fd).

Se även

Funktionen stat().

os.fstatvfs(fd, /)

Returnerar information om filsystemet som innehåller filen som är associerad med filbeskrivaren fd, som statvfs(). Från och med Python 3.3 är detta ekvivalent med os.statvfs(fd).

os.fsync(fd)

Tvingar fram skrivning av fil med fildeskriptor fd till disk. På Unix anropar detta den inbyggda fsync()-funktionen; på Windows anropar MS _commit()-funktionen.

Om du börjar med ett buffrat Python filobjekt f, gör först f.flush(), och sedan os.fsync(f.fileno()), för att säkerställa att alla interna buffertar som är associerade med f skrivs till disken.

Tillgänglighet: Unix, Windows.

os.ftruncate(fd, length, /)

Trunkerar filen som motsvarar filbeskrivaren fd, så att den är högst längd byte stor. Från och med Python 3.3 är detta likvärdigt med os.truncate(fd, length).

Utlöser en auditing event os.truncate med argumenten fd, length.

Tillgänglighet: Unix, Windows.

Ändrad i version 3.5: Nytt stöd för Windows

os.get_blocking(fd, /)

Hämta blockeringsläget för filbeskrivaren: False om flaggan O_NONBLOCK` är inställd, True om flaggan är avmarkerad.

Se även set_blocking() och socket.socket.setblocking().

Tillgänglighet: Unix, Windows.

Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.

I Windows är den här funktionen begränsad till pipes.

Tillagd i version 3.5.

Ändrad i version 3.12: Stöd för pipes i Windows har lagts till.

os.grantpt(fd, /)

Beviljar åtkomst till den pseudoterminalenhet för slavar som är associerad med den pseudoterminalenhet för master som fildeskriptorn fd hänvisar till. Filbeskrivaren fd stängs inte om den misslyckas.

Anropar funktionen i C:s standardbibliotek grantpt().

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.13.

os.isatty(fd, /)

Returnerar True om filbeskrivaren fd är öppen och ansluten till en tty(-liknande) enhet, annars False.

os.lockf(fd, cmd, len, /)

Tillämpa, testa eller ta bort ett POSIX-lås på en öppen filbeskrivare. fd är en öppen filbeskrivare. cmd anger vilket kommando som ska användas - ett av F_LOCK, F_TLOCK, F_ULOCK eller F_TEST. len anger den del av filen som ska låsas.

Utlöser en auditing event os.lockf med argumenten fd, cmd, len.

Tillagd i version 3.3.

os.F_LOCK
os.F_TLOCK
os.F_ULOCK
os.F_TEST

Flaggor som anger vilken åtgärd lockf() ska vidta.

Tillagd i version 3.3.

os.login_tty(fd, /)

Förbered tty, där fd är en filbeskrivare, för en ny inloggningssession. Gör den anropande processen till en sessionsledare; gör tty till den kontrollerande tty, stdin, stdout och stderr för den anropande processen; stäng fd.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.11.

os.lseek(fd, pos, whence, /)

Ställ in den aktuella positionen för filbeskrivaren fd till position pos, modifierad av whence, och returnera den nya positionen i byte i förhållande till filens början. Giltiga värden för whence är:

  • SEEK_SET eller 0 – ställer in pos relativt början av filen

  • SEEK_CUR eller 1 – ställa in pos relativt den aktuella filpositionen

  • SEEK_END eller 2 – ställer in pos relativt slutet av filen

  • SEEK_HOLE – sätter pos till nästa dataplats, relativt pos

  • SEEK_DATA – sätter pos till nästa datahål, relativt till pos

Ändrad i version 3.3: Lägg till stöd för SEEK_HOLE och SEEK_DATA.

os.SEEK_SET
os.SEEK_CUR
os.SEEK_END

Parametrar till funktionen lseek() och metoden seek()filliknande objekt, för att justera filpositionsindikatorn.

SEEK_SET

Justera filens position i förhållande till början av filen.

SEEK_CUR

Justera filens position i förhållande till den aktuella filpositionen.

SEEK_END

Justera filens position i förhållande till slutet av filen.

Deras värden är 0, 1 respektive 2.

os.SEEK_HOLE
os.SEEK_DATA

Parametrar till lseek()-funktionen och seek()-metoden på filliknande objekt, för sökning av fildata och hål i glest allokerade filer.

SEEK_DATA

Justera filoffset till nästa plats som innehåller data, relativt sökpositionen.

SEEK_HOLE

Justera filens offset till nästa plats som innehåller ett hål, i förhållande till sökpositionen. Ett hål definieras som en sekvens av nollor.

Anteckning

Dessa operationer är bara meningsfulla för filsystem som stöder dem.

Tillgänglighet: Linux >= 3.1, macOS, Unix

Tillagd i version 3.3.

os.open(path, flags, mode=0o777, *, dir_fd=None)

Öppna filen path och sätt olika flaggor enligt flags och eventuellt dess mode enligt mode. Vid beräkning av mode maskeras först det aktuella umask-värdet bort. Returnera filbeskrivaren för den nyöppnade filen. Den nya filbeskrivaren är non-inherititable.

För en beskrivning av flagg- och lägesvärdena, se C-dokumentationen för körtid; flaggkonstanter (som O_RDONLY och O_WRONLY) definieras i modulen os. I Windows behövs i synnerhet tillägget O_BINARY för att öppna filer i binärt läge.

Denna funktion kan stödja sökvägar i förhållande till katalogbeskrivare med parametern dir_fd.

Skapar en auditing event open med argumenten path, mode, flags.

Ändrad i version 3.4: Den nya filbeskrivaren är nu inte ärftlig.

Anteckning

Denna funktion är avsedd för I/O på låg nivå. För normal användning, använd den inbyggda funktionen open(), som returnerar ett file object med metoderna read() och write() (och många fler). För att paketera en filbeskrivning i ett filobjekt, använd fdopen().

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.5: Om systemanropet avbryts och signalhanteraren inte ger upphov till ett undantag, försöker funktionen nu göra om systemanropet istället för att ge upphov till ett InterruptedError-undantag (se PEP 475 för förklaringen).

Ändrad i version 3.6: Accepterar en path-like object.

Följande konstanter är alternativ för parametern flags till funktionen open(). De kan kombineras med hjälp av den bitvisa OR-operatorn |. Vissa av dem är inte tillgängliga på alla plattformar. För beskrivningar av deras tillgänglighet och användning, se manualsidan open(2) på Unix eller the MSDN på Windows.

os.O_RDONLY
os.O_WRONLY
os.O_RDWR
os.O_APPEND
os.O_CREAT
os.O_EXCL
os.O_TRUNC

Ovanstående konstanter är tillgängliga under Unix och Windows.

os.O_DSYNC
os.O_RSYNC
os.O_SYNC
os.O_NDELAY
os.O_NONBLOCK
os.O_NOCTTY
os.O_CLOEXEC

Ovanstående konstanter är endast tillgängliga under Unix.

Ändrad i version 3.3: Lägg till O_CLOEXEC konstant.

os.O_BINARY
os.O_NOINHERIT
os.O_SHORT_LIVED
os.O_TEMPORARY
os.O_RANDOM
os.O_SEQUENTIAL
os.O_TEXT

Ovanstående konstanter är endast tillgängliga under Windows.

os.O_EVTONLY
os.O_FSYNC
os.O_NOFOLLOW_ANY

Ovanstående konstanter är endast tillgängliga på macOS.

Ändrad i version 3.10: Lägg till konstanterna O_EVTONLY, O_FSYNC, O_SYMLINK och O_NOFOLLOW_ANY.

os.O_ASYNC
os.O_DIRECT
os.O_DIRECTORY
os.O_NOFOLLOW
os.O_NOATIME
os.O_PATH
os.O_TMPFILE
os.O_SHLOCK
os.O_EXLOCK

Ovanstående konstanter är tillägg och finns inte med om de inte definieras av C-biblioteket.

Ändrad i version 3.4: Lägg till O_PATH på system som stöder det. Lägg till O_TMPFILE, endast tillgängligt på Linux Kernel 3.11 eller nyare.

os.openpty()

Öppna ett nytt pseudoterminalpar. Returnera ett par filbeskrivare (master, slave) för pty respektive tty. De nya filbeskrivarna är icke-ärftliga. För ett (något) mer portabelt tillvägagångssätt, använd modulen pty.

Tillgänglighet: Unix, not WASI.

Ändrad i version 3.4: De nya filbeskrivningarna är nu icke-ärftliga.

os.pipe()

Skapa en pipe. Returnerar ett par filbeskrivare (r, w) som kan användas för läsning respektive skrivning. Den nya filbeskrivaren är icke-ärftlig.

Tillgänglighet: Unix, Windows.

Ändrad i version 3.4: De nya filbeskrivningarna är nu icke-ärftliga.

os.pipe2(flags, /)

Skapa en pipe med flags atomiskt inställda. flags kan konstrueras genom att ORa ihop ett eller flera av dessa värden: O_NONBLOCK, O_CLOEXEC. Returnerar ett par filbeskrivare (r, w) som kan användas för läsning respektive skrivning.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.3.

os.posix_fallocate(fd, offset, len, /)

Säkerställer att tillräckligt med diskutrymme allokeras för den fil som anges av fd från offset och len bytes framåt.

Tillagd i version 3.3.

os.posix_fadvise(fd, offset, len, advice, /)

Tillkännager en avsikt att komma åt data i ett specifikt mönster, vilket gör att kärnan kan göra optimeringar. Rådet gäller för den del av filen som specificeras av fd och börjar vid offset och fortsätter i len byte. advice är en av POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED eller POSIX_FADV_DONTNEED.

Tillagd i version 3.3.

os.POSIX_FADV_NORMAL
os.POSIX_FADV_SEQUENTIAL
os.POSIX_FADV_RANDOM
os.POSIX_FADV_NOREUSE
os.POSIX_FADV_WILLNEED
os.POSIX_FADV_DONTNEED

Flaggor som kan användas i råd i posix_fadvise() som anger det åtkomstmönster som sannolikt kommer att användas.

Tillagd i version 3.3.

os.pread(fd, n, offset, /)

Läser högst n byte från filbeskrivaren fd vid en position på offset, vilket lämnar filoffseten oförändrad.

Returnerar en bytestring som innehåller de lästa bytena. Om slutet på filen som refereras till av fd har nåtts, returneras ett tomt bytesobjekt.

Tillagd i version 3.3.

os.posix_openpt(oflag, /)

Öppna och returnera en filbeskrivare för en master-pseudoterminalenhet.

Anropar C-standardbiblioteksfunktionen posix_openpt(). Argumentet oflag används för att ställa in filstatusflaggor och filåtkomstlägen enligt vad som anges på manualsidan för posix_openpt() i ditt system.

Filbeskrivaren som returneras är non-inherititable. Om värdet O_CLOEXEC finns tillgängligt i systemet läggs det till i oflag.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.13.

os.preadv(fd, buffers, offset, flags=0, /)

Läser från en filbeskrivare fd vid en position på offset till föränderliga bytesliknande objekt buffertar, med oförändrad filoffset. Överför data till varje buffert tills den är full och gå sedan vidare till nästa buffert i sekvensen för att lagra resten av data.

Argumentet flags innehåller ett bitvis OR av noll eller flera av följande flaggor:

Returnerar det totala antalet bytes som faktiskt lästs, vilket kan vara mindre än den totala kapaciteten för alla objekt.

Operativsystemet kan sätta en gräns (sysconf() värde 'SC_IOV_MAX') för antalet buffertar som kan användas.

Kombinerar funktionerna i os.readv() och os.pread().

Tillgänglighet: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1.

Användning av flaggor kräver Linux >= 4.6.

Tillagd i version 3.7.

os.RWF_NOWAIT

Vänta inte på data som inte är omedelbart tillgängliga. Om den här flaggan anges kommer systemanropet att returneras direkt om det måste läsa data från backinglagret eller vänta på ett lås.

Om data lästes framgångsrikt returneras antalet lästa byte. Om inga byte lästes, returneras -1 och errno sätts till errno.EAGAIN.

Tillgänglighet: Linux >= 4.14.

Tillagd i version 3.7.

os.RWF_HIPRI

Läsning/skrivning med hög prioritet. Gör det möjligt för blockbaserade filsystem att använda pollning av enheten, vilket ger lägre latens, men kan kräva ytterligare resurser.

För närvarande är den här funktionen endast användbar i Linux på en filbeskrivare som öppnats med flaggan O_DIRECT.

Tillgänglighet: Linux >= 4.6.

Tillagd i version 3.7.

os.ptsname(fd, /)

Returnerar namnet på den pseudoterminalenhet för slavar som är associerad med den pseudoterminalenhet för master som fildeskriptorn fd hänvisar till. Filbeskrivaren fd stängs inte om den misslyckas.

Anropar den reentranta C-standardbiblioteksfunktionen ptsname_r() om den är tillgänglig; annars anropas C-standardbiblioteksfunktionen ptsname(), som inte garanterat är trådsäker.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.13.

os.pwrite(fd, str, offset, /)

Skriv bytesträngen i str till filbeskrivaren fd vid positionen offset, vilket lämnar filoffseten oförändrad.

Returnera antalet bytes som faktiskt skrivits.

Tillagd i version 3.3.

os.pwritev(fd, buffers, offset, flags=0, /)

Skriv buffertarnas innehåll till filbeskrivaren fd vid en offset offset, vilket lämnar filoffseten oförändrad. buffertar måste vara en sekvens av bytesliknande objekt. Buffertarna behandlas i array-ordning. Hela innehållet i den första bufferten skrivs innan man går vidare till den andra, och så vidare.

Argumentet flags innehåller ett bitvis OR av noll eller flera av följande flaggor:

Returnera det totala antalet bytes som faktiskt skrivits.

Operativsystemet kan sätta en gräns (sysconf() värde 'SC_IOV_MAX') för antalet buffertar som kan användas.

Kombinerar funktionerna i os.writev() och os.pwrite().

Tillgänglighet: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD >= 2.7, AIX >= 7.1.

Användning av flaggor kräver Linux >= 4.6.

Tillagd i version 3.7.

os.RWF_DSYNC

Tillhandahåller en skrivmotsvarighet till flaggan O_DSYNC os.open(). Denna flagga gäller endast för det dataintervall som skrivs av systemanropet.

Tillgänglighet: Linux >= 4.7.

Tillagd i version 3.7.

os.RWF_SYNC

Tillhandahåller en skrivmotsvarighet till flaggan O_SYNC os.open(). Denna flagga gäller endast för det dataintervall som skrivs av systemanropet.

Tillgänglighet: Linux >= 4.7.

Tillagd i version 3.7.

os.RWF_APPEND

Tillhandahåller en skrivmotsvarighet till O_APPEND os.open()-flaggan. Denna flagga är endast meningsfull för os.pwritev(), och dess effekt gäller endast för det dataområde som skrivs av systemanropet. Argumentet offset påverkar inte skrivoperationen; data läggs alltid till i slutet av filen. Om offset-argumentet är -1 uppdateras dock den aktuella filens offset.

Tillgänglighet: Linux >= 4.16.

Tillagd i version 3.10.

os.read(fd, n, /)

Läs högst n byte från filbeskrivaren fd.

Returnerar en bytestring som innehåller de lästa bytena. Om slutet på filen som refereras till av fd har nåtts, returneras ett tomt bytesobjekt.

Anteckning

Denna funktion är avsedd för lågnivå-I/O och måste tillämpas på en filbeskrivare som returneras av os.open() eller pipe(). För att läsa ett ”filobjekt” som returneras av den inbyggda funktionen open() eller av popen() eller fdopen(), eller sys.stdin, använd dess metoder read() eller readline().

Ändrad i version 3.5: Om systemanropet avbryts och signalhanteraren inte ger upphov till ett undantag, försöker funktionen nu göra om systemanropet istället för att ge upphov till ett InterruptedError-undantag (se PEP 475 för förklaringen).

os.readinto(fd, buffer, /)

Läs från en filbeskrivare fd till ett föränderligt buffer-objekt buffer.

Bufferten ska vara mutabel och bytesliknande. Vid framgång returneras antalet lästa byte. Färre byte kan läsas än buffertens storlek. Det underliggande systemanropet kommer att återupptas när det avbryts av en signal, såvida inte signalhanteraren gör ett undantag. Andra fel kommer inte att återupptas och ett fel kommer att uppstå.

Returnerar 0 om fd är i slutet av filen eller om den medföljande buffer har längd 0 (vilket kan användas för att kontrollera fel utan att läsa data). Returnerar aldrig negativt.

Anteckning

Den här funktionen är avsedd för I/O på låg nivå och måste tillämpas på en filbeskrivare som returneras av os.open() eller os.pipe(). För att läsa ett ”filobjekt” som returneras av den inbyggda funktionen open(), eller sys.stdin, använd dess medlemsfunktioner, till exempel io.BufferedIOBase.readinto(), io.BufferedIOBase.read(), eller io.TextIOBase.read()

Tillagd i version 3.14.

os.sendfile(out_fd, in_fd, offset, count)
os.sendfile(out_fd, in_fd, offset, count, headers=(), trailers=(), flags=0)

Kopiera antal byte från filbeskrivaren in_fd till filbeskrivaren out_fd med start vid offset. Returnera antalet byte som skickats. När EOF nås returneras 0.

Den första funktionsnotationen stöds av alla plattformar som definierar sendfile().

Under Linux, om offset anges som None, läses bytena från den aktuella positionen för in_fd och positionen för in_fd uppdateras.

Det andra fallet kan användas på macOS och FreeBSD där headers och trailers är godtyckliga sekvenser av buffertar som skrivs före och efter att data från in_fd skrivs. Det returnerar samma sak som det första fallet.

På macOS och FreeBSD anger ett värde på 0 för count att sändning ska ske tills slutet av in_fd nås.

Alla plattformar stöder sockets som out_fd filbeskrivare, och vissa plattformar tillåter även andra typer (t.ex. vanlig fil, pipe).

Plattformsoberoende program bör inte använda argumenten headers, trailers och flags.

Tillgänglighet: Unix, not WASI.

Anteckning

För en högre nivå av sendfile(), se socket.socket.sendfile().

Tillagd i version 3.3.

Ändrad i version 3.9: Parametrarna out och in döptes om till out_fd och in_fd.

os.SF_NODISKIO
os.SF_MNOWAIT
os.SF_SYNC

Parametrar till funktionen sendfile(), om implementationen stöder dem.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.3.

os.SF_NOCACHE

Parameter till funktionen sendfile(), om implementationen stöder det. Data kommer inte att cachas i det virtuella minnet och kommer att frigöras efteråt.

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.11.

os.set_blocking(fd, blocking, /)

Ställer in blockeringsläget för den angivna filbeskrivaren. Ställ in flaggan O_NONBLOCK om blockering är False, rensa flaggan annars.

Se även get_blocking() och socket.socket.setblocking().

Tillgänglighet: Unix, Windows.

Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.

I Windows är den här funktionen begränsad till pipes.

Tillagd i version 3.5.

Ändrad i version 3.12: Stöd för pipes i Windows har lagts till.

os.splice(src, dst, count, offset_src=None, offset_dst=None, flags=0)

Överför count bytes från filbeskrivaren src, med start från offset offset_src, till filbeskrivaren dst, med start från offset offset_dst.

Splicing-beteendet kan ändras genom att ange ett flags-värde. Någon av följande variabler kan användas och kombineras med bitvis OR (operatorn |):

  • Om SPLICE_F_MOVE anges ombeds kärnan att flytta sidor i stället för att kopiera, men sidor kan ändå kopieras om kärnan inte kan flytta sidorna från pipen.

  • Om SPLICE_F_NONBLOCK anges ombeds kärnan att inte blockera vid I/O. Detta gör att splice pipe-operationerna inte blockerar, men splice kan ändå blockera eftersom de splicade filbeskrivarna kan blockera.

  • Om SPLICE_F_MORE anges, antyder det för kärnan att mer data kommer att komma i en efterföljande splice.

Minst en av filbeskrivarna måste referera till en pipe. Om offset_src är None läses src från den aktuella positionen; motsvarande gäller för offset_dst. Den offset som är kopplad till filbeskrivaren som refererar till en pipe måste vara None. Filerna som pekas ut av src och dst måste finnas i samma filsystem, annars uppstår ett OSError med errno satt till errno.EXDEV.

Denna kopiering görs utan den extra kostnaden för att överföra data från kärnan till användarutrymmet och sedan tillbaka till kärnan. Dessutom kan vissa filsystem implementera extra optimeringar. Kopian görs som om båda filerna öppnades som binära.

Vid lyckad slutförande returneras antalet bytes som har skarvats till eller från röret. Ett returvärde på 0 betyder att inmatningen är avslutad. Om src hänvisar till en pipe betyder det att det inte fanns några data att överföra och att det inte skulle vara meningsfullt att blockera eftersom det inte finns några skrivare anslutna till skrivänden av pipen.

Se även

Manualsidan splice(2).

Tillgänglighet: Linux >= 2.6.17 with glibc >= 2.5

Tillagd i version 3.10.

os.SPLICE_F_MOVE
os.SPLICE_F_NONBLOCK
os.SPLICE_F_MORE

Tillagd i version 3.10.

os.readv(fd, buffers, /)

Läser från en filbeskrivare fd till ett antal föränderliga bytesliknande objekt buffertar. Överför data till varje buffert tills den är full och gå sedan vidare till nästa buffert i sekvensen för att lagra resten av data.

Returnerar det totala antalet bytes som faktiskt lästs, vilket kan vara mindre än den totala kapaciteten för alla objekt.

Operativsystemet kan sätta en gräns (sysconf() värde 'SC_IOV_MAX') för antalet buffertar som kan användas.

Tillagd i version 3.3.

os.tcgetpgrp(fd, /)

Returnerar processgruppen som är associerad med terminalen som anges av fd (en öppen filbeskrivare som returneras av os.open()).

Tillgänglighet: Unix, not WASI.

os.tcsetpgrp(fd, pg, /)

Ställ in processgruppen som är associerad med terminalen som anges av fd (en öppen filbeskrivare som returneras av os.open()) till pg.

Tillgänglighet: Unix, not WASI.

os.ttyname(fd, /)

Returnerar en sträng som anger den terminalenhet som är associerad med filbeskrivaren fd. Om fd inte är associerad med en terminalenhet, kommer ett undantag att uppstå.

os.unlockpt(fd, /)

Lås upp pseudoterminalenheten för slavar som är associerad med pseudoterminalenheten för master som filbeskrivaren fd hänvisar till. Filbeskrivaren fd stängs inte om den misslyckas.

Anropar C-standardbiblioteksfunktionen unlockpt().

Tillgänglighet: Unix, not WASI.

Tillagd i version 3.13.

os.write(fd, str, /)

Skriv bytesträngen i str till filbeskrivaren fd.

Returnera antalet bytes som faktiskt skrivits.

Anteckning

Den här funktionen är avsedd för I/O på låg nivå och måste tillämpas på en filbeskrivare som returneras av os.open() eller pipe(). För att skriva ett ”filobjekt” som returneras av den inbyggda funktionen open() eller av popen() eller fdopen(), eller sys.stdout eller sys.stderr, använd dess metod write().

Ändrad i version 3.5: Om systemanropet avbryts och signalhanteraren inte ger upphov till ett undantag, försöker funktionen nu göra om systemanropet istället för att ge upphov till ett InterruptedError-undantag (se PEP 475 för förklaringen).

os.writev(fd, buffers, /)

Skriv innehållet i buffertar till filbeskrivaren fd. buffertar måste vara en sekvens av bytesliknande objekt. Buffertarna bearbetas i array-ordning. Hela innehållet i den första bufferten skrivs innan man går vidare till den andra, och så vidare.

Returnerar det totala antalet bytes som faktiskt skrivits.

Operativsystemet kan sätta en gräns (sysconf() värde 'SC_IOV_MAX') för antalet buffertar som kan användas.

Tillagd i version 3.3.

Fråga om storleken på en terminal

Tillagd i version 3.3.

os.get_terminal_size(fd=STDOUT_FILENO, /)

Returnerar storleken på terminalfönstret som (kolumner, rader), tupel av typen terminal_size.

Det valfria argumentet fd (standard STDOUT_FILENO, eller standardutdata) anger vilken filbeskrivare som ska tillfrågas.

Om filbeskrivaren inte är ansluten till en terminal, uppstår ett OSError.

shutil.get_terminal_size() är den högnivåfunktion som normalt bör användas, os.get_terminal_size är lågnivåimplementeringen.

Tillgänglighet: Unix, Windows.

class os.terminal_size

En subklass av tuple, som innehåller (kolumner, rader) av terminalfönstrets storlek.

columns

Terminalfönstrets bredd i tecken.

lines

Terminalfönstrets höjd i tecken.

Arv av filbeskrivare

Tillagd i version 3.4.

En filbeskrivning har en flagga ”inheritable” som anger om filbeskrivningen kan ärvas av underordnade processer. Sedan Python 3.4 är filbeskrivare som skapats av Python inte ärftliga som standard.

På UNIX stängs icke-ärftliga fildeskriptorer i barnprocesser när ett nytt program körs, andra fildeskriptorer ärvs.

I Windows stängs icke-ärftliga handtag och filbeskrivare i underordnade processer, med undantag för standardströmmar (filbeskrivare 0, 1 och 2: stdin, stdout och stderr), som alltid ärvs. Om du använder funktionerna spawn* ärvs alla ärftliga handtag och alla ärftliga filbeskrivare. Med modulen subprocess stängs alla filbeskrivare utom standardströmmar, och ärftliga handtag ärvs endast om parametern close_fds är False.

På WebAssembly-plattformar kan fildeskriptorn inte ändras.

os.get_inheritable(fd, /)

Hämta flaggan ”inheritable” för den angivna filbeskrivaren (en boolean).

os.set_inheritable(fd, inheritable, /)

Ställ in flaggan ”inheritable” för den angivna filbeskrivaren.

os.get_handle_inheritable(handle, /)

Hämta flaggan ”inheritable” för det angivna handtaget (en boolean).

Tillgänglighet: Windows.

os.set_handle_inheritable(handle, inheritable, /)

Ställ in flaggan ”inheritable” för det angivna handtaget.

Tillgänglighet: Windows.

Filer och kataloger

På vissa Unix-plattformar har många av dessa funktioner stöd för en eller flera av dessa funktioner:

  • specificering av en filbeskrivning: Normalt måste argumentet path för funktioner i modulen os vara en sträng som anger en filsökväg. Vissa funktioner accepterar dock nu alternativt en öppen filbeskrivning för sitt path-argument. Funktionen kommer då att arbeta med den fil som deskriptorn hänvisar till. (För POSIX-system kommer Python att anropa den variant av funktionen som har prefixet f (t.ex. anropa fchdir istället för chdir))

    Du kan kontrollera om path kan anges som en filbeskrivare för en viss funktion på din plattform med hjälp av os.supports_fd. Om den här funktionen inte är tillgänglig kommer den att ge upphov till ett NotImplementedError.

    Om funktionen även stöder argumenten dir_fd eller follow_symlinks är det fel att ange något av dessa när path anges som filbeskrivare.

  • Sökvägar relativt katalogbeskrivare: Om dir_fd inte är None ska det vara en filbeskrivning som hänvisar till en katalog och sökvägen ska vara relativ; sökvägen kommer då att vara relativ till den katalogen. Om sökvägen är absolut ignoreras dir_fd. (För POSIX-system kommer Python att anropa varianten av funktionen med suffixet at och eventuellt med prefixet f (t.ex. anropa faccessat istället för access).

    Du kan kontrollera om dir_fd stöds för en viss funktion på din plattform med hjälp av os.supports_dir_fd. Om den inte är tillgänglig, kommer användningen av den att ge upphov till ett NotImplementedError.

os.access(path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)

Använd den verkliga uid/gid för att testa åtkomst till path. Observera att de flesta operationer kommer att använda det effektiva uid/gid, därför kan denna rutin användas i en suid/sgid-miljö för att testa om den anropande användaren har den angivna åtkomsten till path. mode bör vara F_OK för att testa existensen av sökväg, eller så kan det vara det inkluderande ELLER av en eller flera av R_OK, W_OK och X_OK för att testa behörigheter. Returnerar True om åtkomst är tillåten, False om inte. Se Unix man page access(2) för mer information.

Den här funktionen kan stödja angivande av sökvägar relativt katalogbeskrivare och inte följa symlänkar.

Om effective_ids är True kommer access() att utföra sina åtkomstkontroller med hjälp av det effektiva uid/gid istället för det riktiga uid/gid. effective_ids kanske inte stöds på din plattform; du kan kontrollera om det är tillgängligt eller inte med os.supports_effective_ids. Om den inte är tillgänglig kommer den att ge upphov till ett NotImplementedError.

Anteckning

Om du använder access() för att kontrollera om en användare har behörighet att t.ex. öppna en fil innan han eller hon faktiskt gör det med open() skapas ett säkerhetshål, eftersom användaren kan utnyttja det korta tidsintervallet mellan kontrollen och öppnandet av filen för att manipulera den. Det är att föredra att använda EAFP-tekniker. Till exempel:

if os.access("minfil", os.R_OK):
    med open("myfile") som fp:
        return fp.read()
return "några standarddata"

är bättre skrivet som:

försök:
    fp = open("myfile")
except PermissionError:
    return "några standarddata"
else:
    med fp:
        return fp.read()

Anteckning

I/O-operationer kan misslyckas även om access() indikerar att de skulle lyckas, särskilt för operationer på nätverksfilsystem som kan ha en behörighetssemantik som går utöver den vanliga POSIX-modellen för behörighetsbitar.

Ändrad i version 3.3: Parametrarna dir_fd, effective_ids och follow_symlinks har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

os.F_OK
os.R_OK
os.W_OK
os.X_OK

Värden att skicka som mode-parameter i access() för att testa existensen, läsbarheten, skrivbarheten respektive körbarheten för path.

os.chdir(path)

Ändra den aktuella arbetskatalogen till path.

Denna funktion kan stödja angivelse av en filbeskrivare. Deskriptorn måste referera till en öppnad katalog, inte en öppen fil.

Denna funktion kan ge upphov till OSError och underklasser som FileNotFoundError, PermissionError och NotADirectoryError.

Utlöser en auditing event os.chdir med argumentet path.

Ändrad i version 3.3: Lagt till stöd för att ange path som filbeskrivare på vissa plattformar.

Ändrad i version 3.6: Accepterar en path-like object.

os.chflags(path, flags, *, follow_symlinks=True)

Ställ in flaggorna för sökväg till det numeriska värdet flags. flags kan vara en kombination (bitvis ELLER) av följande värden (enligt definitionen i modulen stat):

Denna funktion kan stödja inte följa symbollänkar.

Utlöser en auditing event os.chflags med argumenten path, flags.

Tillgänglighet: Unix, not WASI.

Ändrad i version 3.3: Parametern follow_symlinks har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)

Ändrar läget för sökväg till det numeriska läge. mode kan anta något av följande värden (enligt definitionerna i modulen stat) eller bitvisa kombinationer av dem:

Den här funktionen kan stödja specificera en filbeskrivare, sökvägar relativt katalogbeskrivare och inte följa symlänkar.

Anteckning

Även om Windows stöder chmod(), kan du bara ställa in filens skrivskyddade flagga med den (via konstanterna stat.S_IWRITE och stat.S_IREAD eller ett motsvarande heltalsvärde). Alla andra bitar ignoreras. Standardvärdet för follow_symlinks är False i Windows.

Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.

Utlöser en auditing-händelse os.chmod med argumenten path, mode, dir_fd.

Ändrad i version 3.3: Lagt till stöd för att ange path som en öppen filbeskrivare, och argumenten dir_fd och follow_symlinks.

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.13: Lagt till stöd för filbeskrivare och argumentet follow_symlinks i Windows.

os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)

Ändra ägar- och grupp-id för sökväg till de numeriska värdena uid och gid. Om du vill lämna ett av id:en oförändrat anger du -1.

Den här funktionen kan stödja specificera en filbeskrivare, sökvägar relativt katalogbeskrivare och inte följa symlänkar.

Se shutil.chown() för en funktion på högre nivå som accepterar namn i tillägg till numeriska id:n.

Utlöser en auditing-händelse os.chown med argumenten path, uid, gid, dir_fd.

Tillgänglighet: Unix.

Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.

Ändrad i version 3.3: Lagt till stöd för att ange path som en öppen filbeskrivare, och argumenten dir_fd och follow_symlinks.

Ändrad i version 3.6: Stöder en path-like object.

os.chroot(path)

Ändra rotkatalogen för den aktuella processen till path.

Tillgänglighet: Unix, not WASI, not Android.

Ändrad i version 3.6: Accepterar en path-like object.

os.fchdir(fd)

Ändra den aktuella arbetskatalogen till den katalog som representeras av fildeskriptorn fd. Deskriptorn måste referera till en öppnad katalog, inte en öppen fil. Från och med Python 3.3 är detta likvärdigt med os.chdir(fd).

Utlöser en auditing event os.chdir med argumentet path.

os.getcwd()

Returnerar en sträng som representerar den aktuella arbetskatalogen.

os.getcwdb()

Returnerar en bytestring som representerar den aktuella arbetskatalogen.

Ändrad i version 3.8: Funktionen använder nu UTF-8-kodning i Windows, snarare än ANSI-kodsidan: se PEP 529 för motivering. Funktionen är inte längre föråldrad i Windows.

os.lchflags(path, flags)

Ställ in flaggorna för sökväg till de numeriska flaggorna, som chflags(), men följ inte symboliska länkar. Från och med Python 3.3 är detta likvärdigt med os.chflags(path, flags, follow_symlinks=False).

Utlöser en auditing event os.chflags med argumenten path, flags.

Tillgänglighet: Unix, not WASI.

Ändrad i version 3.6: Accepterar en path-like object.

os.lchmod(path, mode)

Ändra läget för sökväg till det numeriska läget. Om sökvägen är en symbolisk länk påverkar detta den symboliska länken snarare än målet. Se dokumentationen för chmod() för möjliga värden för mode. Från och med Python 3.3 är detta likvärdigt med os.chmod(path, mode, follow_symlinks=False).

lchmod() är inte en del av POSIX, men Unix-implementationer kan ha det om det finns stöd för att ändra läget för symboliska länkar.

Utlöser en auditing-händelse os.chmod med argumenten path, mode, dir_fd.

Tillgänglighet: Unix, Windows, not Linux, FreeBSD >= 1.3, NetBSD >= 1.3, not OpenBSD

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.13: Stöd för Windows har lagts till.

os.lchown(path, uid, gid)

Ändra ägar- och grupp-ID för sökväg till de numeriska värdena uid och gid. Denna funktion följer inte symboliska länkar. Från och med Python 3.3 är detta likvärdigt med os.chown(path, uid, gid, follow_symlinks=False).

Utlöser en auditing-händelse os.chown med argumenten path, uid, gid, dir_fd.

Ändrad i version 3.6: Accepterar en path-like object.

Skapa en hård länk som pekar på src och heter dst.

Denna funktion kan stödja angivande av src_dir_fd och/eller dst_dir_fd för att tillhandahålla sökvägar relativt katalogbeskrivare, och inte följa symlinks. Standardvärdet för follow_symlinks är False i Windows.

Utlöser en auditing-händelse os.link med argumenten src, dst, src_dir_fd, dst_dir_fd.

Tillgänglighet: Unix, Windows.

Ändrad i version 3.2: Stöd för Windows har lagts till.

Ändrad i version 3.3: Parametrarna src_dir_fd, dst_dir_fd och follow_symlinks har lagts till.

Ändrad i version 3.6: Accepterar en path-like object för src och dst.

os.listdir(path='.')

Returnerar en lista som innehåller namnen på posterna i katalogen som anges av path. Listan är i godtycklig ordning och inkluderar inte specialposterna '.' och '..' även om de finns i katalogen. Om en fil tas bort från eller läggs till i katalogen under anropet av denna funktion, är det ospecificerat om ett namn för den filen ska inkluderas.

path kan vara en path-like object. Om sökväg är av typen bytes (direkt eller indirekt genom gränssnittet PathLike), kommer filnamnen som returneras också att vara av typen bytes; under alla andra omständigheter kommer de att vara av typen str.

Denna funktion kan också stödja specificera en filbeskrivning; filbeskrivningen måste referera till en katalog.

Utlöser en auditing event os.listdir med argumentet path.

Anteckning

För att koda str filnamn till bytes, använd fsencode().

Se även

Funktionen scandir() returnerar katalogposter tillsammans med information om filattribut, vilket ger bättre prestanda för många vanliga användningsfall.

Ändrad i version 3.2: Parametern path blev valfri.

Ändrad i version 3.3: Lagt till stöd för att ange path som en öppen filbeskrivare.

Ändrad i version 3.6: Accepterar en path-like object.

os.listdrives()

Returnerar en lista som innehåller namnen på enheterna i ett Windows-system.

Ett enhetsnamn ser vanligtvis ut som ”C:". Alla enhetsnamn är inte associerade med en volym, och vissa kan vara otillgängliga av olika skäl, t.ex. behörigheter, nätverksanslutning eller saknad media. Den här funktionen testar inte åtkomst.

Kan ge upphov till OSError om ett fel uppstår vid insamling av enhetsnamn.

Utlöser en auditing event os.listdrives utan argument.

Tillgänglighet: Windows

Tillagd i version 3.12.

os.listmounts(volume)

Returnerar en lista som innehåller monteringspunkterna för en volym på ett Windows-system.

volume måste representeras som en GUID-sökväg, som de som returneras av os.listvolumes(). Volymer kan vara monterade på flera platser eller inte alls. I det senare fallet kommer listan att vara tom. Monteringspunkter som inte är associerade med en volym kommer inte att returneras av denna funktion.

De monteringspunkter som returneras av denna funktion kommer att vara absoluta sökvägar och kan vara längre än enhetsnamnet.

Utlöser OSError om volymen inte känns igen eller om ett fel uppstår när sökvägarna samlas in.

Utlöser en auditing event os.listmounts med argumentet volume.

Tillgänglighet: Windows

Tillagd i version 3.12.

os.listvolumes()

Returnerar en lista som innehåller volymerna i systemet.

Volymer representeras vanligtvis som en GUID-sökväg som ser ut som ”Volym{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”. Filer kan vanligtvis nås via en GUID-sökväg, om behörigheterna tillåter det. Användare är dock i allmänhet inte bekanta med dem, och därför är den rekommenderade användningen av denna funktion att hämta monteringspunkter med os.listmounts().

Kan ge upphov till OSError om ett fel inträffar när volymerna samlas in.

Utlöser en auditing event os.listvolumes utan argument.

Tillgänglighet: Windows

Tillagd i version 3.12.

os.lstat(path, *, dir_fd=None)

Utför motsvarande ett lstat()-systemanrop på den angivna sökvägen. Liknar stat(), men följer inte symboliska länkar. Returnerar ett stat_result-objekt.

På plattformar som inte har stöd för symboliska länkar är detta ett alias för stat().

Från och med Python 3.3 motsvarar detta os.stat(path, dir_fd=dir_fd, follow_symlinks=False).

Denna funktion kan också stödja sökvägar i förhållande till katalogbeskrivare.

Se även

Funktionen stat().

Ändrad i version 3.2: Stöd för symboliska länkar i Windows 6.0 (Vista) har lagts till.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.8: I Windows öppnas nu reparse-punkter som representerar en annan sökväg (namnsurrogat), inklusive symboliska länkar och katalogövergångar. Andra typer av reparse-punkter löses av operativsystemet på samma sätt som för stat().

os.mkdir(path, mode=0o777, *, dir_fd=None)

Skapa en katalog med namnet path med numeriskt läge mode.

Om katalogen redan finns, uppstår FileExistsError. Om en överordnad katalog i sökvägen inte existerar, genereras FileNotFoundError.

På vissa system ignoreras mode. Där den används maskeras först det aktuella umask-värdet. Om andra bitar än de sista 9 (dvs. de sista 3 siffrorna i oktalrepresentationen av mode) är inställda, är deras betydelse plattformsberoende. På vissa plattformar ignoreras de och du bör anropa chmod() explicit för att ställa in dem.

I Windows hanteras ett mode0o700 specifikt för att tillämpa åtkomstkontroll på den nya katalogen så att endast den aktuella användaren och administratörer har åtkomst. Andra värden på mode ignoreras.

Denna funktion kan också stödja sökvägar i förhållande till katalogbeskrivare.

Det är också möjligt att skapa temporära kataloger; se modulen tempfile tempfile.mkdtemp().

Utlöser en auditing-händelse os.mkdir med argumenten path, mode, dir_fd.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.13: Windows hanterar nu ett mode av 0o700.

os.makedirs(name, mode=0o777, exist_ok=False)

Funktion för rekursivt skapande av kataloger. Som mkdir(), men skapar alla kataloger på mellannivå som behövs för att innehålla bladkatalogen.

Parametern mode skickas till mkdir() för att skapa bladkatalogen; se beskrivningen av mkdir() för hur den tolkas. För att ställa in filbehörighetsbitarna för alla nyskapade överordnade kataloger kan du ställa in umask innan du anropar makedirs(). Filbehörighetsbitarna för befintliga överordnade kataloger ändras inte.

Om exist_ok är False (standard), uppstår ett FileExistsError om målkatalogen redan existerar.

Anteckning

makedirs() blir förvirrad om sökvägselementen som ska skapas innehåller pardir (t.ex. ”..” på UNIX-system).

Denna funktion hanterar UNC-sökvägar korrekt.

Utlöser en auditing-händelse os.mkdir med argumenten path, mode, dir_fd.

Ändrad i version 3.2: Parametern exist_ok har lagts till.

Ändrad i version 3.4.1: Före Python 3.4.1, om exist_ok var True och katalogen existerade, skulle makedirs() fortfarande ge upphov till ett fel om mode inte matchade läget för den befintliga katalogen. Eftersom detta beteende var omöjligt att implementera på ett säkert sätt togs det bort i Python 3.4.1. Se bpo-21082.

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.7: Argumentet mode påverkar inte längre filbehörighetsbitarna för nyskapade kataloger på mellannivå.

os.mkfifo(path, mode=0o666, *, dir_fd=None)

Skapa en FIFO (en namngiven pipe) med namnet path och det numeriska läget mode. Det aktuella umask-värdet maskeras först bort från läget.

Denna funktion kan också stödja sökvägar i förhållande till katalogbeskrivare.

FIFO:er är pipes som kan nås som vanliga filer. FIFO:er existerar tills de raderas (t.ex. med os.unlink()). I allmänhet används FIFO:er som mötesplatser mellan processer av typen ”klient” och ”server”: servern öppnar FIFO:n för läsning och klienten öppnar den för skrivning. Observera att mkfifo() inte öppnar FIFO:n — den skapar bara en mötesplats.

Tillgänglighet: Unix, not WASI.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

os.mknod(path, mode=0o600, device=0, *, dir_fd=None)

Skapa en filsystemnod (fil, enhetsspecialfil eller named pipe) med namnet path. mode anger både vilka behörigheter som ska användas och vilken typ av nod som ska skapas, genom att kombineras (bitvis OR) med en av stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK och stat.S_IFIFIFO (dessa konstanter finns i stat). För stat.S_IFCHR och stat.S_IFBLK definierar device den nyskapade enhetens specialfil (troligen med hjälp av os.makedev()), annars ignoreras den.

Denna funktion kan också stödja sökvägar i förhållande till katalogbeskrivare.

Tillgänglighet: Unix, not WASI.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

os.major(device, /)

Extrahera enhetens huvudnummer från ett obearbetat enhetsnummer (vanligtvis fältet st_dev eller st_rdev från stat).

os.minor(device, /)

Extrahera enhetens mindre nummer från ett obearbetat enhetsnummer (vanligtvis fältet st_dev eller st_rdev från stat).

os.makedev(major, minor, /)

Sammanställ ett obearbetat enhetsnummer från de större och mindre enhetsnumren.

os.pathconf(path, name)

Returnerar information om systemkonfiguration som är relevant för en namngiven fil. name anger det konfigurationsvärde som ska hämtas; det kan vara en sträng som är namnet på ett definierat systemvärde; dessa namn anges i ett antal standarder (POSIX.1, Unix 95, Unix 98 m.fl.). Vissa plattformar definierar även ytterligare namn. De namn som är kända av värdoperativsystemet anges i ordlistan pathconf_names. För konfigurationsvariabler som inte ingår i denna mappning accepteras också att name ersätts med ett heltal.

Om name är en sträng och inte är känd, genereras ValueError. Om ett specifikt värde för name inte stöds av värdsystemet, även om det ingår i pathconf_names, genereras ett OSError med errno.EINVAL som felnummer.

Den här funktionen kan stödja angivelse av en filbeskrivare.

Ändrad i version 3.6: Accepterar en path-like object.

os.pathconf_names

Ordbok som mappar namn som accepteras av pathconf() och fpathconf() till de heltalsvärden som värdoperativsystemet har definierat för dessa namn. Detta kan användas för att bestämma den uppsättning namn som är kända av systemet.

Returnerar en sträng som representerar den sökväg som den symboliska länken pekar på. Resultatet kan vara antingen ett absolut eller relativt sökvägsnamn; om det är relativt kan det konverteras till ett absolut sökvägsnamn med os.path.join(os.path.dirname(path), result).

Om path är ett strängobjekt (direkt eller indirekt via ett PathLike-gränssnitt), blir resultatet också ett strängobjekt och anropet kan ge upphov till ett UnicodeDecodeError. Om sökvägen är ett bytesobjekt (direkt eller indirekt), kommer resultatet att vara ett bytesobjekt.

Denna funktion kan också stödja sökvägar i förhållande till katalogbeskrivare.

När du försöker lösa en sökväg som kan innehålla länkar, använd realpath() för att hantera rekursion och plattformsskillnader på rätt sätt.

Tillgänglighet: Unix, Windows.

Ändrad i version 3.2: Stöd för symboliska länkar i Windows 6.0 (Vista) har lagts till.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object på Unix.

Ändrad i version 3.8: Accepterar en path-like object och ett bytes-objekt på Windows.

Lagt till stöd för katalogförgreningar och ändrat så att substitutionssökvägen returneras (vilket vanligtvis inkluderar prefixet ”\?\) i stället för det valfria fältet ”print name” som tidigare returnerades.

os.remove(path, *, dir_fd=None)

Ta bort (delete) filen path. Om sökväg är en katalog genereras ett OSError. Använd rmdir() för att ta bort kataloger. Om filen inte finns genereras ett FileNotFoundError.

Den här funktionen kan stödja sökvägar som är relativa till katalogbeskrivare.

I Windows uppstår ett undantag när man försöker ta bort en fil som används. I Unix tas katalogposten bort, men det lagringsutrymme som tilldelats filen görs inte tillgängligt förrän den ursprungliga filen inte längre används.

Denna funktion är semantiskt identisk med unlink().

Utlöser en auditing-händelse os.remove med argumenten path, dir_fd.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

os.removedirs(name)

Ta bort kataloger rekursivt. Fungerar som rmdir() förutom att, om bladkatalogen tas bort framgångsrikt, försöker removedirs() successivt ta bort varje överordnad katalog som nämns i path tills ett fel uppstår (vilket ignoreras, eftersom det i allmänhet betyder att en överordnad katalog inte är tom). Till exempel kommer os.removedirs('foo/bar/baz') först att ta bort katalogen 'foo/bar/baz', och sedan ta bort 'foo/bar' och 'foo' om de är tomma. Utlöser OSError om bladkatalogen inte kunde tas bort på ett framgångsrikt sätt.

Utlöser en auditing-händelse os.remove med argumenten path, dir_fd.

Ändrad i version 3.6: Accepterar en path-like object.

os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

Byt namn på filen eller katalogen src till dst. Om dst finns kommer åtgärden att misslyckas med en OSError-underklass i ett antal fall:

I Windows, om dst existerar, genereras alltid ett FileExistsError. Operationen kan misslyckas om src och dst finns på olika filsystem. Använd shutil.move() för att stödja flytt till ett annat filsystem.

På Unix, om src är en fil och dst är en katalog eller vice versa, kommer ett IsADirectoryError eller ett NotADirectoryError att uppstå. Om båda är kataloger och dst är tom, kommer dst att ersättas i tysthet. Om dst är en katalog som inte är tom genereras ett OSError. Om båda är filer kommer dst att ersättas i tysthet om användaren har behörighet. Operationen kan misslyckas på vissa Unix-versioner om src och dst finns på olika filsystem. Om namnbytet lyckas kommer det att vara en atomisk operation (detta är ett POSIX-krav).

Denna funktion kan stödja angivande av src_dir_fd och/eller dst_dir_fd för att tillhandahålla sökvägar relativt katalogbeskrivare.

Om du vill att destinationen ska skrivas över på flera plattformar använder du replace().

Utlöser en auditing-händelse os.rename med argumenten src, dst, src_dir_fd, dst_dir_fd.

Ändrad i version 3.3: Parametrarna src_dir_fd och dst_dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object för src och dst.

os.renames(old, new)

Rekursiv funktion för att byta namn på kataloger eller filer. Fungerar som rename(), förutom att skapandet av eventuella mellanliggande kataloger som behövs för att göra det nya sökvägsnamnet bra först försöker. Efter namnbytet kommer kataloger som motsvarar det gamla namnet längst till höger i sökvägen att rensas bort med removedirs().

Anteckning

Denna funktion kan misslyckas med den nya katalogstrukturen som skapats om du saknar de behörigheter som krävs för att ta bort bladkatalogen eller filen.

Utlöser en auditing-händelse os.rename med argumenten src, dst, src_dir_fd, dst_dir_fd.

Ändrad i version 3.6: Accepterar en path-like object för old och new.

os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

Byt namn på filen eller katalogen src till dst. Om dst är en katalog som inte är tom kommer OSError att aktiveras. Om dst finns och är en fil, kommer den att ersättas tyst om användaren har behörighet. Operationen kan misslyckas om src och dst finns på olika filsystem. Om namnbytet lyckas kommer det att vara en atomisk operation (detta är ett POSIX-krav).

Denna funktion kan stödja angivande av src_dir_fd och/eller dst_dir_fd för att tillhandahålla sökvägar relativt katalogbeskrivare.

Utlöser en auditing-händelse os.rename med argumenten src, dst, src_dir_fd, dst_dir_fd.

Tillagd i version 3.3.

Ändrad i version 3.6: Accepterar en path-like object för src och dst.

os.rmdir(path, *, dir_fd=None)

Ta bort (delete) katalogen path. Om katalogen inte finns eller inte är tom, visas ett FileNotFoundError eller ett OSError. För att ta bort hela katalogträd kan shutil.rmtree() användas.

Den här funktionen kan stödja sökvägar som är relativa till katalogbeskrivare.

Utlöser en auditing-händelse os.rmdir med argumenten path, dir_fd.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

os.scandir(path='.')

Returnerar en iterator av os.DirEntry-objekt som motsvarar posterna i den katalog som anges av path. Posterna returneras i godtycklig ordning, och specialposterna '.' och '..' inkluderas inte. Om en fil tas bort från eller läggs till i katalogen efter att iteratorn skapats, är det ospecificerat om en post för den filen ska inkluderas.

Att använda scandir() istället för listdir() kan avsevärt öka prestandan för kod som också behöver information om filtyp eller filattribut, eftersom os.DirEntry-objekt exponerar denna information om operativsystemet tillhandahåller den när en katalog skannas. Alla os.DirEntry-metoder kan utföra ett systemanrop, men is_dir() och is_file() kräver vanligtvis bara ett systemanrop för symboliska länkar; os.DirEntry.stat() kräver alltid ett systemanrop på Unix men bara ett för symboliska länkar på Windows.

path kan vara en path-like object. Om sökväg är av typen bytes (direkt eller indirekt genom PathLike-gränssnittet), kommer typen av attributen name och path för varje os.DirEntry att vara bytes; under alla andra omständigheter kommer de att vara av typen str.

Denna funktion kan också stödja specificera en filbeskrivning; filbeskrivningen måste referera till en katalog.

Utlöser en auditing event os.scandir med argumentet path.

Iteratorn scandir() stöder protokollet context manager och har följande metod:

scandir.close()

Stäng iteratorn och frigör förvärvade resurser.

Detta anropas automatiskt när iteratorn är uttömd eller garbage collected, eller när ett fel inträffar under iterationen. Det är dock tillrådligt att anropa det explicit eller använda with-satsen.

Tillagd i version 3.6.

Följande exempel visar en enkel användning av scandir() för att visa alla filer (exklusive kataloger) i den angivna path som inte börjar med '.'. Anropet entry.is_file() kommer i allmänhet inte att göra ett ytterligare systemanrop:

med os.scandir(sökväg) som den:
    för post i den:
        if not entry.name.startswith('.') and entry.is_file():
            print(post.namn)

Anteckning

På Unix-baserade system använder scandir() systemets funktioner opendir() och readdir(). På Windows används Win32-funktionerna FindFirstFileW och FindNextFileW.

Tillagd i version 3.5.

Ändrad i version 3.6: Lagt till stöd för protokollet context manager och metoden close(). Om en scandir() iterator varken är uttömd eller explicit stängd kommer en ResourceWarning att skickas ut i dess destruktor.

Funktionen accepterar en path-like object.

Ändrad i version 3.7: Lagt till stöd för file descriptors på Unix.

class os.DirEntry

Objekt som genereras av scandir() för att visa filsökvägen och andra filattribut för en katalogpost.

scandir() kommer att tillhandahålla så mycket av denna information som möjligt utan att göra ytterligare systemanrop. När ett stat() eller lstat() systemanrop görs, kommer objektet os.DirEntry att cacha resultatet.

instanser av os.DirEntry är inte avsedda att lagras i långlivade datastrukturer; om du vet att filens metadata har ändrats eller om det har gått lång tid sedan du anropade scandir(), anropa os.stat(entry.path) för att hämta aktuell information.

Eftersom metoderna i os.DirEntry kan göra anrop till operativsystemet kan de också ge upphov till OSError. Om du behöver mycket finkornig kontroll över fel kan du fånga OSError när du anropar en av metoderna i os.DirEntry och hantera dem på lämpligt sätt.

För att vara direkt användbar som ett path-like object, implementerar os.DirEntry PathLike gränssnittet.

Attribut och metoder för en os.DirEntry-instans är följande:

name

Postens basfilnamn, i förhållande till argumentet scandir() path.

Attributet name kommer att vara bytes om argumentet scandir() path är av typen bytes och str annars. Använd fsdecode() för att avkoda bytefilnamn.

path

Postens fullständiga sökvägsnamn: motsvarar os.path.join(scandir_path, entry.name) där scandir_path är scandir() path-argumentet. Sökvägen är bara absolut om argumentet scandir() path var absolut. Om scandir() path-argumentet var en file descriptor, är attributet path detsamma som attributet name.

Attributet path kommer att vara bytes om argumentet scandir() path är av typen bytes och str annars. Använd fsdecode() för att avkoda bytefilnamn.

inode()

Returnerar inodnumret för posten.

Resultatet cachelagras på objektet os.DirEntry. Använd os.stat(entry.path, follow_symlinks=False).st_ino för att hämta aktuell information.

Vid det första anropet, som inte är cachat, krävs ett systemanrop i Windows men inte i Unix.

is_dir(*, follow_symlinks=True)

Returnerar True om denna post är en katalog eller en symbolisk länk som pekar på en katalog; returnerar False om posten är eller pekar på någon annan typ av fil, eller om den inte längre existerar.

Om follow_symlinks är False, returneras True endast om denna post är en katalog (utan att följa symlinks); returneras False om posten är någon annan typ av fil eller om den inte längre existerar.

Resultatet cachelagras på objektet os.DirEntry, med en separat cache för follow_symlinks True och False. Anropa os.stat() tillsammans med stat.S_ISDIR() för att hämta aktuell information.

Vid det första, ocachade anropet krävs i de flesta fall inget systemanrop. För icke-symlänkar kräver varken Windows eller Unix ett systemanrop, utom för vissa Unix-filsystem, t.ex. nätverksfilsystem, som returnerar dirent.d_type == DT_UNKNOWN. Om posten är en symlänk krävs ett systemanrop för att följa symlänken om inte follow_symlinks är False.

Denna metod kan ge upphov till OSError, t.ex. PermissionError, men FileNotFoundError fångas upp och ges inte upphov till.

is_file(*, follow_symlinks=True)

Returnerar True om denna post är en fil eller en symbolisk länk som pekar på en fil; returnerar False om posten är eller pekar på en katalog eller annan post som inte är en fil, eller om den inte längre existerar.

Om follow_symlinks är False, returneras True endast om denna post är en fil (utan att följa symlinks); returneras False om posten är en katalog eller annan icke-filpost, eller om den inte längre existerar.

Resultatet cachelagras på objektet os.DirEntry. Cachelagring, systemanrop som görs och undantag som tas upp är enligt is_dir().

Returnerar True om denna post är en symbolisk länk (även om den är bruten); returnerar False om posten pekar på en katalog eller någon form av fil, eller om den inte längre existerar.

Resultatet cachelagras på objektet os.DirEntry. Anropa os.path.islink() för att hämta aktuell information.

Vid det första, ocachade anropet krävs i de flesta fall inget systemanrop. Varken Windows eller Unix kräver ett systemanrop, förutom i vissa Unix-filsystem, t.ex. nätverksfilsystem, som returnerar dirent.d_type == DT_UNKNOWN.

Denna metod kan ge upphov till OSError, t.ex. PermissionError, men FileNotFoundError fångas upp och ges inte upphov till.

is_junction()

Returnerar True om denna post är en korsning (även om den är bruten); returnerar False om posten pekar på en vanlig katalog, någon form av fil, en symlänk eller om den inte längre finns.

Resultatet cachelagras på objektet os.DirEntry. Anropa os.path.isjunction() för att hämta aktuell information.

Tillagd i version 3.12.

stat(*, follow_symlinks=True)

Returnerar ett stat_result-objekt för den här posten. Denna metod följer symboliska länkar som standard; för att stata en symbolisk länk lägg till argumentet follow_symlinks=False.

På Unix kräver den här metoden alltid ett systemanrop. I Windows krävs det bara ett systemanrop om follow_symlinks är True och posten är en reparse-punkt (t.ex. en symbolisk länk eller katalogkorsning).

I Windows är attributen st_ino, st_dev och st_nlink i stat_result alltid nollställda. Anropa os.stat() för att få dessa attribut.

Resultatet cachelagras på objektet os.DirEntry, med en separat cache för follow_symlinks True och False. Anropa os.stat() för att hämta aktuell information.

Observera att det finns en fin korrespondens mellan flera attribut och metoder i os.DirEntry och i pathlib.Path. I synnerhet har attributet name samma betydelse, liksom metoderna is_dir(), is_file(), is_symlink(), is_junction() och stat().

Tillagd i version 3.5.

Ändrad i version 3.6: Lagt till stöd för gränssnittet PathLike. Lagt till stöd för bytes-sökvägar på Windows.

Ändrad i version 3.12: Attributet st_ctime för ett stat-resultat är föråldrat i Windows. Filens skapelsetid är korrekt tillgänglig som st_birthtime, och i framtiden kan st_ctime ändras för att returnera noll eller metadatas ändringstid, om den är tillgänglig.

os.stat(path, *, dir_fd=None, follow_symlinks=True)

Hämta status för en fil eller en filbeskrivare. Utför motsvarande ett stat() systemanrop på den angivna sökvägen. path kan anges som antingen en sträng eller bytes – direkt eller indirekt genom PathLike-gränssnittet – eller som en öppen filbeskrivare. Returnerar ett stat_result-objekt.

Denna funktion följer normalt symlinks; för att stata en symlink lägg till argumentet follow_symlinks=False, eller använd lstat().

Denna funktion kan stödja specificera en filbeskrivare och inte följa symlänkar.

Om du anger follow_symlinks=False i Windows kan du inte följa alla reparse-punkter som liknar namn, vilket inkluderar symlinks och directory junctions. Andra typer av reparse-punkter som inte liknar länkar eller som operativsystemet inte kan följa öppnas direkt. När du följer en kedja med flera länkar kan detta resultera i att den ursprungliga länken returneras i stället för den icke-länk som förhindrade fullständig traversering. För att få statistikresultat för den slutliga sökvägen i det här fallet, använd funktionen os.path.realpath() för att lösa upp sökvägsnamnet så långt som möjligt och anropa lstat() på resultatet. Detta gäller inte för dangling symlinks eller junction points, som kommer att ge upphov till de vanliga undantagen.

Exempel:

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
os.stat_result(st_mode=33188, st_ino=7876932, st_dev=234881026,
st_nlink=1, st_uid=501, st_gid=501, st_size=264, st_atime=1297230295,
st_mtime=1297230027, st_ctime=1297230027)
>>> statinfo.st_size
264

Se även

funktionerna fstat() och lstat().

Ändrad i version 3.3: Parametrarna dir_fd och follow_symlinks har lagts till och anger en filbeskrivare i stället för en sökväg.

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.8: I Windows följs nu alla reparse-punkter som kan lösas av operativsystemet, och om du anger follow_symlinks=False följer du inte alla reparse-punkter för namnsurrogat. Om operativsystemet når en reparse-punkt som det inte kan följa, returnerar stat nu informationen för den ursprungliga sökvägen som om follow_symlinks=False hade angetts i stället för att ge upphov till ett fel.

class os.stat_result

Objekt vars attribut ungefär motsvarar medlemmarna i stat-strukturen. Det används för resultatet av os.stat(), os.fstat() och os.lstat().

Attribut:

st_mode

File mode: filtyp och bits för filläge (behörigheter).

st_ino

Beroende på plattform, men om den inte är noll identifierar den filen unikt för ett visst värde på st_dev. Typiskt för detta:

  • inode-numret på Unix,

  • filindex på Windows

st_dev

Identifierare för den enhet som filen finns på.

Antal hårda länkar.

st_uid

Användaridentifierare för filägaren.

st_gid

Gruppidentifierare för filägaren.

st_size

Filens storlek i byte, om det är en vanlig fil eller en symbolisk länk. Storleken på en symbolisk länk är längden på det sökvägsnamn den innehåller, utan en avslutande null-byte.

Tidsstämplar:

st_atime

Tidpunkt för senaste åtkomst uttryckt i sekunder.

st_mtime

Tidpunkt för senaste ändring av innehåll uttryckt i sekunder.

st_ctime

Tidpunkt för den senaste ändringen av metadata uttryckt i sekunder.

Ändrad i version 3.12: st_ctime är föråldrad i Windows. Använd st_birthtime för tiden då filen skapades. I framtiden kommer st_ctime att innehålla tiden för den senaste metadataändringen, som för andra plattformar.

st_atime_ns

Tidpunkt för senaste åtkomst uttryckt i nanosekunder som ett heltal.

Tillagd i version 3.3.

st_mtime_ns

Tidpunkt för den senaste innehållsändringen uttryckt i nanosekunder som ett heltal.

Tillagd i version 3.3.

st_ctime_ns

Tidpunkt för den senaste ändringen av metadata uttryckt i nanosekunder som ett heltal.

Tillagd i version 3.3.

Ändrad i version 3.12: st_ctime_ns är föråldrad i Windows. Använd st_birthtime_ns för tiden då filen skapades. I framtiden kommer st_ctime att innehålla tiden för den senaste metadataändringen, som för andra plattformar.

st_birthtime

Tidpunkt för filskapande uttryckt i sekunder. Detta attribut är inte alltid tillgängligt och kan ge upphov till AttributeError.

Ändrad i version 3.12: st_birthtime är nu tillgängligt på Windows.

st_birthtime_ns

Tidpunkt för filskapande uttryckt i nanosekunder som ett heltal. Detta attribut är inte alltid tillgängligt och kan ge upphov till AttributeError.

Tillagd i version 3.12.

Anteckning

Den exakta betydelsen och upplösningen av attributen st_atime, st_mtime, st_ctime och st_birthtime beror på operativsystemet och filsystemet. På Windows-system med filsystemet FAT32 har t.ex. st_mtime upplösning på 2 sekunder och st_atime har endast upplösning på 1 dag. Se dokumentationen för ditt operativsystem för mer information.

Även om st_atime_ns, st_mtime_ns, st_ctime_ns och st_birthtime_ns alltid uttrycks i nanosekunder är det många system som inte har nanosekundsprecision. På system som har nanosekundsprecision kan det flyttalsobjekt som används för att lagra st_atime, st_mtime, st_ctime och st_birthtime inte bevara allt, och därför kommer det att vara något inexakt. Om du behöver de exakta tidsstämplarna bör du alltid använda st_atime_ns, st_mtime_ns, st_ctime_ns och st_birthtime_ns.

På vissa Unix-system (t.ex. Linux) kan följande attribut också vara tillgängliga:

st_blocks

Antal 512-byte-block som allokerats för filen. Detta kan vara mindre än st_size/512 om filen har hål.

st_blksize

”Rekommenderad” blockstorlek för effektiv I/O i filsystemet. Om du skriver till en fil i mindre bitar kan det leda till en ineffektiv read-modify-rewrite.

st_rdev

Typ av enhet om det är en inode-enhet.

st_flags

Användardefinierade flaggor för filen.

På andra Unix-system (t.ex. FreeBSD) kan följande attribut vara tillgängliga (men kanske bara fylls i om root försöker använda dem):

st_gen

Filens generationsnummer.

På Solaris och derivat kan följande attribut också vara tillgängliga:

st_fstype

Sträng som unikt identifierar typen av det filsystem som innehåller filen.

På macOS-system kan följande attribut också vara tillgängliga:

st_rsize

Filens verkliga storlek.

st_creator

Skapare av filen.

st_type

Filtyp.

På Windows-system är följande attribut också tillgängliga:

st_file_attributes

Windows filattribut: dwFileAttributes-medlem i BY_HANDLE_FILE_INFORMATION-strukturen som returneras av GetFileInformationByHandle`(). Se konstanterna FILE_ATTRIBUTE_* <stat.FILE_ATTRIBUTE_ARCHIVE> i modulen stat.

Tillagd i version 3.5.

st_reparse_tag

När st_file_attributes har inställningen FILE_ATTRIBUTE_REPARSE_POINT, innehåller detta fält taggen som identifierar typen av reparse-punkt. Se konstanterna IO_REPARSE_TAG_* i modulen stat.

Standardmodulen stat definierar funktioner och konstanter som är användbara för att extrahera information från en stat-struktur. (I Windows är vissa objekt fyllda med dummyvärden)

För bakåtkompatibilitet är en stat_result-instans också tillgänglig som en tupel av minst 10 heltal som ger de viktigaste (och portabla) medlemmarna i stat-strukturen, i ordningen st_mode, st_ino, st_dev, st_nlink, st_uid, st_gid, st_size, st_atime, st_mtime, st_ctime. Fler objekt kan läggas till i slutet av vissa implementationer. För kompatibilitet med äldre Python-versioner returnerar åtkomst till stat_result som en tupel alltid heltal.

Ändrad i version 3.5: Windows returnerar nu filindexet som st_ino när det är tillgängligt.

Ändrad i version 3.7: Lagt till medlemmen st_fstype i Solaris/derivatives.

Ändrad i version 3.8: Lagt till st_reparse_tag-medlemmen på Windows.

Ändrad i version 3.8: I Windows identifierar nu medlemmen st_mode specialfiler som S_IFCHR, S_IFIFIFO eller S_IFBLK beroende på vad som är lämpligt.

Ändrad i version 3.12: På Windows är st_ctime föråldrad. Så småningom kommer den att innehålla den senaste metadataändringstiden för att vara konsekvent med andra plattformar, men för närvarande innehåller den fortfarande skapelsetiden. Använd st_birthtime för skapelsetiden.

I Windows kan st_ino nu vara upp till 128 bitar, beroende på filsystem. Tidigare kunde den inte vara mer än 64 bitar, och större filidentifierare kunde packas godtyckligt.

I Windows returnerar st_rdev inte längre något värde. Tidigare innehöll den samma värde som st_dev, vilket var felaktigt.

Lagt till medlemmen st_birthtime på Windows.

os.statvfs(path)

Utför ett statvfs() systemanrop på den angivna sökvägen. Returvärdet är ett objekt vars attribut beskriver filsystemet på den givna sökvägen och motsvarar medlemmarna i statvfs-strukturen, nämligen: f_bsize, f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax, f_fsid.

Två konstanter på modulnivå definieras för attributet f_flag bit-flags: om ST_RDONLY anges monteras filsystemet skrivskyddat, och om ST_NOSUID anges inaktiveras eller stöds inte semantiken för setuid/setgid-bitar.

Ytterligare konstanter på modulnivå har definierats för GNU/glibc-baserade system. Dessa är ST_NODEV (förbjuder åtkomst till enhetsspecifika filer), ST_NOEXEC (förbjuder programkörning), ST_SYNCHRONOUS (skrivningar synkroniseras på en gång), ST_MANDLOCK (tillåter obligatoriska lås på en FS), ST_WRITE (skriv på fil/katalog/symlänk), ST_APPEND (endast append-fil), ST_IMMUTABLE (oföränderlig fil), ST_NOATIME (uppdatera inte åtkomsttider), ST_NODIRATIME (uppdatera inte åtkomsttider för kataloger), ST_RELATIME (uppdatera atime i förhållande till mtime/ctime).

Den här funktionen kan stödja angivelse av en filbeskrivare.

Ändrad i version 3.2: Konstanterna ST_RDONLY och ST_NOSUID har lagts till.

Ändrad i version 3.3: Lagt till stöd för att ange path som en öppen filbeskrivare.

Ändrad i version 3.4: Parametrarna ST_NODEV, ST_NOEXEC, ST_SYNCHRONOUS, ST_MANDLOCK, ST_WRITE, ST_APPEND, ST_IMMUTABLE, ST_NOATIME, ST_NODIRATIME, och ST_RELATIME lades till.

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.7: Lagt till attributet f_fsid.

os.supports_dir_fd

Ett set-objekt som anger vilka funktioner i os-modulen som accepterar en öppen filbeskrivare för sin dir_fd-parameter. Olika plattformar har olika funktioner och den underliggande funktionaliteten som Python använder för att implementera parametern dir_fd är inte tillgänglig på alla plattformar som Python stöder. För konsekvensens skull tillåter funktioner som kan stödja dir_fd alltid att parametern anges, men kommer att kasta ett undantag om funktionaliteten används när den inte är lokalt tillgänglig. (Att ange None för dir_fd stöds alltid på alla plattformar)

För att kontrollera om en viss funktion accepterar en öppen filbeskrivare för sin parameter dir_fd, använd operatorn inupports_dir_fd. Som ett exempel utvärderas detta uttryck till True om os.stat() accepterar öppna filbeskrivare för dir_fd på den lokala plattformen:

os.stat i os.supports_dir_fd

För närvarande fungerar dir_fd-parametrarna bara på Unix-plattformar; ingen av dem fungerar på Windows.

Tillagd i version 3.3.

os.supports_effective_ids

Ett set-objekt som anger om os.access() tillåter att man anger True för parametern effective_ids på den lokala plattformen. (Att ange False för effective_ids stöds alltid på alla plattformar) Om den lokala plattformen stöder det, kommer samlingen att innehålla os.access(); annars kommer den att vara tom.

Detta uttryck utvärderas till True om os.access() stöder effective_ids=True på den lokala plattformen:

os.access i os.supports_effective_ids

För närvarande stöds effective_ids endast på Unix-plattformar; det fungerar inte på Windows.

Tillagd i version 3.3.

os.supports_fd

Ett set-objekt som anger vilka funktioner i os-modulen som tillåter att deras path-parameter anges som en öppen filbeskrivare på den lokala plattformen. Olika plattformar har olika funktioner och den underliggande funktionalitet som Python använder för att acceptera öppna filbeskrivare som path-argument är inte tillgänglig på alla plattformar som Python stöder.

Om du vill avgöra om en viss funktion tillåter att en öppen filbeskrivare anges för parametern path, använder du operatorn insupports_fd. Som ett exempel utvärderas detta uttryck till True om os.chdir() accepterar öppna filbeskrivare för path på din lokala plattform:

os.chdir i os.supports_fd

Tillagd i version 3.3.

Ett set-objekt som anger vilka funktioner i os-modulen som accepterar False för sin follow_symlinks-parameter på den lokala plattformen. Olika plattformar har olika funktioner, och den underliggande funktionaliteten som Python använder för att implementera follow_symlinks är inte tillgänglig på alla plattformar som Python stöder. För konsekvensens skull tillåter funktioner som kan stödja follow_symlinks alltid att parametern anges, men kommer att göra ett undantag om funktionaliteten används när den inte är lokalt tillgänglig. (Att ange True för follow_symlinks stöds alltid på alla plattformar)

För att kontrollera om en viss funktion accepterar False för sin parameter follow_symlinks, använd operatorn insupports_follow_symlinks. Som ett exempel utvärderas detta uttryck till True om du kan ange follow_symlinks=False när du anropar os.stat() på den lokala plattformen:

os.stat i os.supports_follow_symlinks

Tillagd i version 3.3.

Skapa en symbolisk länk som pekar på src och heter dst.

I Windows representerar en symlänk antingen en fil eller en katalog, och den flyttas inte dynamiskt till målet. Om målet finns kommer typen av symlänk att skapas så att den matchar. I annat fall skapas symbollänken som en katalog om target_is_directory är True eller som en filsymlänk (standard) i annat fall. På icke-Windows-plattformar ignoreras target_is_directory.

Den här funktionen kan stödja sökvägar som är relativa till katalogbeskrivare.

Anteckning

I nyare versioner av Windows 10 kan icke-privilegierade konton skapa symboliska länkar om utvecklarläget är aktiverat. När Developer Mode inte är tillgängligt/aktiverat krävs behörigheten SeCreateSymbolicLinkPrivilege, eller så måste processen köras som administratör.

OSError uppstår när funktionen anropas av en användare utan behörighet.

Utlöser en auditing event os.symlink med argumenten src, dst, dir_fd.

Tillgänglighet: Unix, Windows.

Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.

Ändrad i version 3.2: Stöd för symboliska länkar i Windows 6.0 (Vista) har lagts till.

Ändrad i version 3.3: Lagt till parametern dir_fd och tillåter nu target_is_directory på icke-Windows-plattformar.

Ändrad i version 3.6: Accepterar en path-like object för src och dst.

Ändrad i version 3.8: Lagt till stöd för symlänkar som inte är upphöjda i Windows med Developer Mode.

os.sync()

Tvinga fram skrivning av allt till disk.

Tillagd i version 3.3.

os.truncate(path, length)

Trunkera filen som motsvarar sökväg, så att den är högst längd byte stor.

Den här funktionen kan stödja angivelse av en filbeskrivare.

Utlöser en auditing event os.truncate med argumenten path, length.

Tillgänglighet: Unix, Windows.

Tillagd i version 3.3.

Ändrad i version 3.5: Nytt stöd för Windows

Ändrad i version 3.6: Accepterar en path-like object.

Ta bort (delete) filen path. Denna funktion är semantiskt identisk med remove(); namnet unlink är dess traditionella Unix-namn. Se dokumentationen för remove() för ytterligare information.

Utlöser en auditing-händelse os.remove med argumenten path, dir_fd.

Ändrad i version 3.3: Parametern dir_fd har lagts till.

Ändrad i version 3.6: Accepterar en path-like object.

os.utime(path, times=None, *, [ns, ]dir_fd=None, follow_symlinks=True)

Ställ in åtkomst- och ändringstider för den fil som anges av path.

utime() tar två valfria parametrar, times och ns. Dessa anger de tider som ställs in på path och används på följande sätt:

  • Om ns anges måste det vara en 2-tupel av formen (atime_ns, mtime_ns) där varje medlem är en int som uttrycker nanosekunder.

  • Om times inte är None måste det vara en 2-tupel av formen (atime, mtime) där varje medlem är en int eller float som uttrycker sekunder.

  • Om times är None och ns är ospecificerad, är detta likvärdigt med att ange ns=(atime_ns, mtime_ns) där båda tiderna är aktuell tid.

Det är fel att ange tupler för både times och ns.

Observera att de exakta tider som du anger här kanske inte returneras av ett efterföljande anrop av stat(), beroende på med vilken upplösning operativsystemet registrerar åtkomst- och ändringstider; se stat(). Det bästa sättet att bevara exakta tider är att använda fälten st_atime_ns och st_mtime_ns från resultatobjektet os.stat() med parametern ns till utime().

Den här funktionen kan stödja specificera en filbeskrivare, sökvägar relativt katalogbeskrivare och inte följa symlänkar.

Startar en auditing-händelse os.utime med argumenten path, times, ns, dir_fd.

Ändrad i version 3.3: Stöd har lagts till för att ange path som en öppen filbeskrivare och parametrarna dir_fd, follow_symlinks och ns.

Ändrad i version 3.6: Accepterar en path-like object.

os.walk(top, topdown=True, onerror=None, followlinks=False)

Genererar filnamnen i ett katalogträd genom att gå igenom trädet antingen uppifrån och ned eller nerifrån och upp. För varje katalog i trädet som har sin rot i katalogen top (inklusive top själv) ger det en 3-tupel (dirpath, dirnames, filenames).

dirpath är en sträng som anger sökvägen till katalogen. dirnames är en lista med namnen på underkatalogerna i dirpath (inklusive sym-länkar till kataloger och exklusive '.' och '..'). filenames är en lista med namnen på de filer som inte finns i kataloger i dirpath. Observera att namnen i listorna inte innehåller några sökvägskomponenter. För att få en fullständig sökväg (som börjar med top) till en fil eller katalog i dirpath, gör os.path.join(dirpath, name). Huruvida listorna sorteras eller inte beror på filsystemet. Om en fil tas bort från eller läggs till i katalogen dirpath när listorna genereras, är det ospecificerat om ett namn för den filen ska inkluderas.

Om det valfria argumentet topdown är True eller inte anges, genereras trippeln för en katalog före tripplarna för någon av dess underkataloger (kataloger genereras uppifrån och ned). Om topdown är False genereras trippeln för en katalog efter tripplarna för alla dess underkataloger (kataloger genereras nedifrån och upp). Oavsett värdet på topdown hämtas listan med underkataloger innan tripplarna för katalogen och dess underkataloger genereras.

När topdown är True kan den som anropar ändra dirnames-listan på plats (kanske med hjälp av del eller slice assignment), och walk() kommer bara att söka i de underkataloger vars namn finns kvar i dirnames; detta kan användas för att begränsa sökningen, införa en specifik besöksordning eller till och med för att informera walk() om kataloger som den som anropar skapar eller byter namn på innan den återupptar walk() igen. Att ändra dirnames när topdown är False har ingen effekt på hur vandringen går till, eftersom katalogerna i dirnames i bottom-up-läge genereras innan dirpath själv genereras.

Som standard ignoreras fel från anropet av scandir(). Om det valfria argumentet onerror anges bör det vara en funktion; den kommer att anropas med ett argument, en OSError-instans. Den kan rapportera felet för att fortsätta med vandringen, eller lyfta upp undantaget för att avbryta vandringen. Observera att filnamnet är tillgängligt som attributet filename för undantagsobjektet.

Som standard kommer walk() inte att gå ner i symboliska länkar som leder till kataloger. Sätt followlinks till True för att besöka kataloger som symboliska länkar pekar på, på system som stöder dem.

Anteckning

Tänk på att om followlinks sätts till True kan det leda till oändlig rekursion om en länk pekar på en överordnad katalog till sig själv. walk() håller inte reda på de kataloger som den redan har besökt.

Anteckning

Om du skickar ett relativt söknamn, ändra inte den aktuella arbetskatalogen mellan upprepningar av walk(). walk() ändrar aldrig den aktuella katalogen och antar att dess anropare inte gör det heller.

I det här exemplet visas antalet byte som tas upp av filer som inte är katalogfiler i varje katalog under startkatalogen, förutom att det inte tittar under någon underkatalog __pycache__:

import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/xml'):
    print(root, "consumes", end=" ")
    print(sum(getsize(join(root, name)) for name in files), end=" ")
    print("bytes in", len(files), "non-directory files")
    if '__pycache__' in dirs:
        dirs.remove('__pycache__')  # don't visit __pycache__ directories

I nästa exempel (enkel implementation av shutil.rmtree()) är det viktigt att gå igenom trädet nedifrån och upp, rmdir() tillåter inte att en katalog tas bort innan den är tom:

# Delete everything reachable from the directory named in "top",
# assuming there are no symbolic links.
# CAUTION:  This is dangerous!  For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))
os.rmdir(top)

Utlöser en auditing event os.walk med argumenten top, topdown, onerror, followlinks.

Ändrad i version 3.5: Den här funktionen anropar nu os.scandir() istället för os.listdir(), vilket gör den snabbare genom att minska antalet anrop till os.stat().

Ändrad i version 3.6: Accepterar en path-like object.

os.fwalk(top='.', topdown=True, onerror=None, *, follow_symlinks=False, dir_fd=None)

Detta beter sig precis som walk(), förutom att det ger en 4-tupel (dirpath, dirnames, filenames, dirfd), och det stöder dir_fd.

dirpath, dirnames och filenames är identiska med walk()-utdata, och dirfd är en filbeskrivare som hänvisar till katalogen dirpath.

Den här funktionen stöder alltid sökvägar som är relativa till katalogbeskrivare och inte följa symlinks. Observera dock att, till skillnad från andra funktioner, är fwalk() standardvärde för follow_symlinks False.

Anteckning

Eftersom fwalk() ger filbeskrivningar är dessa endast giltiga till nästa iterationssteg, så du bör duplicera dem (t.ex. med dup()) om du vill behålla dem längre.

I det här exemplet visas antalet byte som tas upp av filer som inte är katalogfiler i varje katalog under startkatalogen, förutom att det inte tittar under någon underkatalog __pycache__:

import os
for root, dirs, files, rootfd in os.fwalk('python/Lib/xml'):
    print(root, "consumes", end="")
    print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]),
          end="")
    print("bytes in", len(files), "non-directory files")
    if '__pycache__' in dirs:
        dirs.remove('__pycache__')  # don't visit __pycache__ directories

I nästa exempel är det viktigt att gå igenom trädet nedifrån och upp: rmdir() tillåter inte att en katalog tas bort innan katalogen är tom:

# Delete everything reachable from the directory named in "top",
# assuming there are no symbolic links.
# CAUTION:  This is dangerous!  For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files, rootfd in os.fwalk(top, topdown=False):
    for name in files:
        os.unlink(name, dir_fd=rootfd)
    for name in dirs:
        os.rmdir(name, dir_fd=rootfd)

Utlöser en auditing-händelse os.fwalk med argumenten top, topdown, onerror, follow_symlinks, dir_fd.

Tillagd i version 3.3.

Ändrad i version 3.6: Accepterar en path-like object.

Ändrad i version 3.7: Lagt till stöd för bytes-sökvägar.

os.memfd_create(name[, flags=os.MFD_CLOEXEC])

Skapa en anonym fil och returnera en filbeskrivning som hänvisar till den. flags måste vara en av de os.MFD_*-konstanter som finns tillgängliga i systemet (eller en bitvis OR-kombination av dem). Som standard är den nya filbeskrivaren non-inherititable.

Namnet som anges i name används som filnamn och kommer att visas som mål för motsvarande symboliska länk i katalogen /proc/self/fd/. Det visade namnet inleds alltid med memfd: och används endast i felsökningssyfte. Namnen påverkar inte filbeskrivarens beteende och därför kan flera filer ha samma namn utan några sidoeffekter.

Tillgänglighet: Linux >= 3.17 with glibc >= 2.27.

Tillagd i version 3.8.

os.MFD_CLOEXEC
os.MFD_ALLOW_SEALING
os.MFD_HUGETLB
os.MFD_HUGE_SHIFT
os.MFD_HUGE_MASK
os.MFD_HUGE_64KB
os.MFD_HUGE_512KB
os.MFD_HUGE_1MB
os.MFD_HUGE_2MB
os.MFD_HUGE_8MB
os.MFD_HUGE_16MB
os.MFD_HUGE_32MB
os.MFD_HUGE_256MB
os.MFD_HUGE_512MB
os.MFD_HUGE_1GB
os.MFD_HUGE_2GB
os.MFD_HUGE_16GB

Dessa flaggor kan skickas till memfd_create().

Tillgänglighet: Linux >= 3.17 with glibc >= 2.27

Flaggorna MFD_HUGE* är endast tillgängliga sedan Linux 4.14.

Tillagd i version 3.8.

os.eventfd(initval[, flags=os.EFD_CLOEXEC])

Skapa och returnera en händelsefilsbeskrivare. Filbeskrivarna stöder råa read() och write() med en buffertstorlek på 8, select(), poll() och liknande. Se man-sidan eventfd(2) för mer information. Som standard är den nya filbeskrivaren non-inheritable.

initval är det initiala värdet för händelseräknaren. Det initiala värdet måste vara ett 32-bitars osignerat heltal. Observera att det initiala värdet är begränsat till ett 32 bitars osignerat int trots att händelseräknaren är ett 64 bitars osignerat heltal med ett maximalt värde på 264-\ 2.

flags kan konstrueras från EFD_CLOEXEC, EFD_NONBLOCK, och EFD_SEMAPHORE.

Om EFD_SEMAPHORE anges och eventräknaren inte är noll, returnerar eventfd_read() 1 och minskar räknaren med ett.

Om EFD_SEMAPHORE inte specificeras och händelseräknaren inte är noll, returnerar eventfd_read() det aktuella värdet för händelseräknaren och nollställer räknaren.

Om händelseräknaren är noll och EFD_NONBLOCK inte anges, blockeras eventfd_read().

eventfd_write() ökar räknaren för händelser. Write blockerar om skrivoperationen skulle öka räknaren till ett värde större än 2. 64-2.

Exempel:

import os

# semaphore with start value '1'
fd = os.eventfd(1, os.EFD_SEMAPHORE | os.EFC_CLOEXEC)
try:
    # acquire semaphore
    v = os.eventfd_read(fd)
    try:
        do_work()
    finally:
        # release semaphore
        os.eventfd_write(fd, v)
finally:
    os.close(fd)

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.10.

os.eventfd_read(fd)

Läser värde från en eventfd() filbeskrivare och returnerar ett 64 bitars osignerat int. Funktionen verifierar inte att fd är en eventfd().

Tillgänglighet: Linux >= 2.6.27

Tillagd i version 3.10.

os.eventfd_write(fd, value)

Lägger till ett värde till en eventfd() filbeskrivare. value måste vara ett 64-bitars osignerat int. Funktionen verifierar inte att fd är en eventfd().

Tillgänglighet: Linux >= 2.6.27

Tillagd i version 3.10.

os.EFD_CLOEXEC

Sätt flaggan close-on-exec för den nya filbeskrivaren eventfd().

Tillgänglighet: Linux >= 2.6.27

Tillagd i version 3.10.

os.EFD_NONBLOCK

Sätt statusflaggan O_NONBLOCK för den nya filbeskrivaren eventfd().

Tillgänglighet: Linux >= 2.6.27

Tillagd i version 3.10.

os.EFD_SEMAPHORE

Tillhandahåller semaforliknande semantik för läsningar från en eventfd()-filbeskrivning. Vid läsning decimeras den interna räknaren med ett.

Tillgänglighet: Linux >= 2.6.30

Tillagd i version 3.10.

Deskriptorer för timerfil

Tillagd i version 3.13.

Dessa funktioner ger stöd för Linux timer file descriptor API. Naturligtvis är de alla endast tillgängliga på Linux.

os.timerfd_create(clockid, /, *, flags=0)

Skapa och returnera en timerfilbeskrivning (timerfd).

Den filbeskrivare som returneras av timerfd_create() stöder:

Filbeskrivarens metod read() kan anropas med en buffertstorlek på 8. Om timern redan har gått ut en eller flera gånger returnerar read() antalet utgångar med värdens endianness, som kan konverteras till en int genom int.from_bytes(x, byteorder=sys.byteorder).

select() och poll() kan användas för att vänta tills timern löper ut och filbeskrivaren är läsbar.

clockid måste vara ett giltigt clock ID, enligt definitionen i modulen time:

Om clockid är time.CLOCK_REALTIME, används en inställbar systemomfattande realtidsklocka. Om systemklockan ändras måste timerinställningen uppdateras. För att avbryta timern när systemklockan ändras, se TFD_TIMER_CANCEL_ON_SET.

Om clockid är time.CLOCK_MONOTONIC används en monotont ökande klocka som inte kan ställas in. Även om systemklockan ändras kommer timerinställningen inte att påverkas.

Om clockid är time.CLOCK_BOOTTIME, samma som time.CLOCK_MONOTONIC förutom att det inkluderar all tid då systemet är avstängt.

Filbeskrivarens beteende kan ändras genom att ange ett flags-värde. Någon av följande variabler kan användas, kombinerade med bitvis OR (operatorn |):

Om TFD_NONBLOCK inte är satt som flagga blockerar read() tills timern går ut. Om det är satt som en flagga blockerar inte read(), men om det inte har skett någon expiration sedan det senaste anropet till read, ger read() upphov till OSError med errno satt till errno.EAGAIN.

TFD_CLOEXEC ställs alltid in automatiskt av Python.

Filbeskrivaren måste stängas med os.close() när den inte längre behövs, annars kommer filbeskrivaren att läcka ut.

Se även

Manuell sida för timerfd_create(2).

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.timerfd_settime(fd, /, *, flags=flags, initial=0.0, interval=0.0)

Ändrar en timerfilsbeskrivares interna timer. Denna funktion använder samma intervalltimer som timerfd_settime_ns().

fd måste vara en giltig timerfilsbeskrivare.

Timerns beteende kan ändras genom att ange ett flags-värde. Någon av följande variabler kan användas, kombinerade med bitvis OR (operatorn |):

Timern inaktiveras genom att initial sätts till noll (0). Om initial är lika med eller större än noll aktiveras timern. Om initial är mindre än noll, uppstår ett OSError undantag med errno satt till errno.EINVAL

Som standard startar timern när initial sekunder har passerat. (Om initial är noll startar timern omedelbart)

Men om flaggan TFD_TIMER_ABSTIME är inställd kommer timern att starta när timerns klocka (inställd av clockid i timerfd_create()) når initial sekunder.

Timerns intervall ställs in av interval float. Om interval är noll utlöses timern bara en gång, vid det första utgångstillfället. Om interval är större än noll avfyras timern varje gång interval sekunder har förflutit sedan föregående expiration. Om interval är mindre än noll, utlöses OSError med errno satt till errno.EINVAL

Om flaggan TFD_TIMER_CANCEL_ON_SET är inställd tillsammans med TFD_TIMER_ABSTIME och klockan för denna timer är time.CLOCK_REALTIME, markeras timern som avbrytbar om realtidsklockan ändras diskontinuerligt. Läsningen av deskriptorn avbryts med felmeddelandet ECANCELED.

Linux hanterar systemklockan som UTC. En övergång till sommartid görs endast genom att ändra tidsförskjutningen och orsakar inte en diskontinuerlig ändring av systemklockan.

Diskontinuerlig systemklockändring kommer att orsakas av följande händelser:

  • settimeofday

  • klocka_inställningstid

  • ställa in systemets datum och tid med kommandot date

Returnerar en tupel med två punkter (next_expiration, interval) från föregående timerstatus, innan denna funktion utfördes.

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.timerfd_settime_ns(fd, /, *, flags=0, initial=0, interval=0)

Liknar timerfd_settime(), men använder tiden som nanosekunder. Denna funktion styr samma intervalltimer som timerfd_settime().

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.timerfd_gettime(fd, /)

Returnerar en tupel av floats med två objekt (next_expiration, interval).

next_expiration anger den relativa tiden tills nästa gång timern startar, oavsett om flaggan TFD_TIMER_ABSTIME är inställd.

interval anger timerns intervall. Om noll, kommer timern bara att starta en gång, efter att next_expiration sekunder har gått.

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.timerfd_gettime_ns(fd, /)

Liknar timerfd_gettime(), men returnerar tiden som nanosekunder.

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.TFD_NONBLOCK

En flagga för funktionen timerfd_create(), som sätter statusflaggan O_NONBLOCK för den nya timer-filbeskrivaren. Om TFD_NONBLOCK inte sätts som en flagga, blockeras read().

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.TFD_CLOEXEC

En flagga för funktionen timerfd_create(), Om TFD_CLOEXEC anges som en flagga, anges flaggan close-on-exec för den nya filbeskrivaren.

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.TFD_TIMER_ABSTIME

En flagga för funktionerna timerfd_settime() och timerfd_settime_ns(). Om denna flagga är inställd tolkas initial som ett absolut värde på timerns klocka (i UTC-sekunder eller nanosekunder sedan Unix-epoken).

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

os.TFD_TIMER_CANCEL_ON_SET

En flagga för funktionerna timerfd_settime() och timerfd_settime_ns() tillsammans med TFD_TIMER_ABSTIME. Timern avbryts när tiden för den underliggande klockan ändras diskontinuerligt.

Tillgänglighet: Linux >= 2.6.27 with glibc >= 2.8

Tillagd i version 3.13.

Linux utökade attribut

Tillagd i version 3.3.

Alla dessa funktioner är endast tillgängliga under Linux.

os.getxattr(path, attribute, *, follow_symlinks=True)

Returnerar värdet på det utökade filsystemattributet attribute för path. attribute kan vara bytes eller str (direkt eller indirekt genom PathLike-gränssnittet). Om det är str kodas det med filsystemets kodning.

Denna funktion kan stödja specificera en filbeskrivare och inte följa symlänkar.

Utlöser en auditing event os.getxattr med argumenten path, attribute.

Ändrad i version 3.6: Accepterar en path-like object för path och attribute.

os.listxattr(path=None, *, follow_symlinks=True)

Returnerar en lista över de utökade filsystemattributen på path. Attributen i listan representeras som strängar avkodade med filsystemets kodning. Om sökväg är None kommer listxattr() att undersöka den aktuella katalogen.

Denna funktion kan stödja specificera en filbeskrivare och inte följa symlänkar.

Utlöser en auditing event os.listxattr med argumentet path.

Ändrad i version 3.6: Accepterar en path-like object.

os.removexattr(path, attribute, *, follow_symlinks=True)

Tar bort det utökade filsystemattributet attribute från path. attribute bör vara bytes eller str (direkt eller indirekt genom PathLike-gränssnittet). Om det är en sträng, kodas den med filesystem encoding and error handler.

Denna funktion kan stödja specificera en filbeskrivare och inte följa symlänkar.

Utlöser en auditing event os.removexattr med argumenten path, attribute.

Ändrad i version 3.6: Accepterar en path-like object för path och attribute.

os.setxattr(path, attribute, value, flags=0, *, follow_symlinks=True)

Ställ in det utökade filsystemattributet attributepath till value. attribute måste vara en bytes eller str utan inbäddade NUL (direkt eller indirekt genom PathLike-gränssnittet). Om det är en str kodas den med filesystem encoding and error handler. flags kan vara XATTR_REPLACE eller XATTR_CREATE. Om XATTR_REPLACE anges och attributet inte finns, kommer ENODATA att uppstå. Om XATTR_CREATE anges och attributet redan existerar, kommer attributet inte att skapas och EEXISTS kommer att visas.

Denna funktion kan stödja specificera en filbeskrivare och inte följa symlänkar.

Anteckning

En bugg i Linux-kärnversioner mindre än 2.6.39 gjorde att flags-argumentet ignorerades på vissa filsystem.

Utlöser en auditing event os.setxattr med argumenten path, attribute, value, flags.

Ändrad i version 3.6: Accepterar en path-like object för path och attribute.

os.XATTR_SIZE_MAX

Den maximala storlek som värdet för ett utökat attribut kan ha. För närvarande är detta 64 KiB under Linux.

os.XATTR_CREATE

Detta är ett möjligt värde för flags-argumentet i setxattr(). Det indikerar att operationen måste skapa ett attribut.

os.XATTR_REPLACE

Detta är ett möjligt värde för flags-argumentet i setxattr(). Det indikerar att operationen måste ersätta ett befintligt attribut.

Processhantering

Dessa funktioner kan användas för att skapa och hantera processer.

De olika funktionerna exec* tar en lista med argument för det nya program som laddas in i processen. I varje fall skickas det första av dessa argument till det nya programmet som dess eget namn snarare än som ett argument som en användare kan ha skrivit in på en kommandorad. För C-programmeraren är detta argv[0] som skickas till ett programs main(). Till exempel kommer os.execv('/bin/echo', ['foo', 'bar']) bara att skriva ut bar på standardutdata; foo verkar ignoreras.

os.abort()

Genererar en SIGABRT-signal till den aktuella processen. På Unix är standardbeteendet att producera en kärndump; på Windows returnerar processen omedelbart en utgångskod på 3. Tänk på att anrop av denna funktion inte kommer att anropa Python-signalhanteraren som registrerats för SIGABRT med signal.signal().

os.add_dll_directory(path)

Lägg till en sökväg till DLL-sökvägen.

Den här sökvägen används när man fastställer beroenden för importerade tilläggsmoduler (själva modulen fastställs med hjälp av sys.path), och även av ctypes.

Ta bort katalogen genom att anropa close() på det returnerade objektet eller genom att använda det i en with-sats.

Se Microsofts dokumentation för mer information om hur DLL:er laddas.

Utlöser en auditing event os.add_dll_directory med argumentet path.

Tillgänglighet: Windows.

Tillagd i version 3.8: Tidigare versioner av CPython löste DLL:er med hjälp av standardbeteendet för den aktuella processen. Detta ledde till inkonsekvenser, som att bara ibland söka i PATH eller den aktuella arbetskatalogen, och OS-funktioner som AddDllDirectory hade ingen effekt.

I 3.8 åsidosätter de två primära sätten som DLL:er laddas på nu uttryckligen det processomfattande beteendet för att säkerställa konsekvens. Se porting notes för information om uppdatering av bibliotek.

os.execl(path, arg0, arg1, ...)
os.execle(path, arg0, arg1, ..., env)
os.execlp(file, arg0, arg1, ...)
os.execlpe(file, arg0, arg1, ..., env)
os.execv(path, args)
os.execve(path, args, env)
os.execvp(file, args)
os.execvpe(file, args, env)

Alla dessa funktioner exekverar ett nytt program som ersätter den aktuella processen; de returnerar inte. På Unix laddas den nya körbara filen in i den aktuella processen och får samma process-ID som den som anropar. Fel kommer att rapporteras som OSError-undantag.

Den aktuella processen ersätts omedelbart. Öppna filobjekt och deskriptorer spolas inte, så om det kan finnas data buffrade på dessa öppna filer bör du spola dem med hjälp av sys.stdout.flush() eller os.fsync() innan du anropar en exec*-funktion.

”l”- och ”v”-varianterna av exec*-funktionerna skiljer sig åt i hur kommandoradsargument skickas. ”l”-varianterna är kanske enklast att arbeta med om antalet parametrar är fast när koden skrivs; de enskilda parametrarna blir helt enkelt ytterligare parametrar till execl*()-funktionerna. ”v”-varianterna är bra när antalet parametrar är variabelt, där argumenten skickas i en lista eller tupel som parametern args. I båda fallen bör argumenten till barnprocessen börja med namnet på det kommando som körs, men detta är inte tvingande.

De varianter som innehåller ett ”p” i slutet (execlp(), execlpe(), execvp() och execvpe()) använder miljövariabeln PATH för att hitta programmet fil. När miljön ersätts (med någon av exec*e-varianterna, som beskrivs i nästa stycke), används den nya miljön som källa för variabeln PATH. De andra varianterna, execl(), execle(), execv() och execve(), använder inte variabeln PATH för att hitta den körbara filen; path måste innehålla en lämplig absolut eller relativ sökväg. Relativa sökvägar måste innehålla minst ett snedstreck, även under Windows, eftersom vanliga namn inte kommer att lösas upp.

För execle(), execlpe(), execve() och execvpe() (notera att alla dessa slutar på ”e”) måste parametern env vara en mappning som används för att definiera miljövariablerna för den nya processen (dessa används istället för den aktuella processens miljö); funktionerna execl(), execlp(), execv() och execvp() gör alla att den nya processen ärver den aktuella processens miljö.

För execve() på vissa plattformar kan path också anges som en öppen filbeskrivare. Denna funktionalitet kanske inte stöds på din plattform; du kan kontrollera om den är tillgänglig eller inte med hjälp av os.supports_fd. Om den inte är tillgänglig kommer användningen av den att ge upphov till ett NotImplementedError.

Utlöser en auditing-händelse os.exec med argumenten path, args, env.

Tillgänglighet: Unix, Windows, not WASI, not Android, not iOS.

Ändrad i version 3.3: Lagt till stöd för att ange path som en öppen filbeskrivare för execve().

Ändrad i version 3.6: Accepterar en path-like object.

os._exit(n)

Avsluta processen med status n, utan att anropa rensningshanterare, rensa stdio-buffertar etc.

Anteckning

Det vanliga sättet att avsluta är sys.exit(n). _exit() bör normalt bara användas i barnprocessen efter en fork().

Följande utgångskoder är definierade och kan användas med _exit(), även om de inte är obligatoriska. Dessa används vanligtvis för systemprogram som är skrivna i Python, t.ex. en e-postservers program för leverans av externa kommandon.

Anteckning

Vissa av dessa kanske inte är tillgängliga på alla Unix-plattformar, eftersom det finns en viss variation. Dessa konstanter definieras där de definieras av den underliggande plattformen.

os.EX_OK

Exit-kod som betyder att inget fel inträffade. Kan hämtas från det definierade värdet för EXIT_SUCCESS på vissa plattformar. Har i allmänhet värdet noll.

Tillgänglighet: Unix, Windows.

os.EX_USAGE

Exit-kod som betyder att kommandot användes felaktigt, t.ex. när fel antal argument anges.

Tillgänglighet: Unix, not WASI.

os.EX_DATAERR

Exit-kod som betyder att indata var felaktiga.

Tillgänglighet: Unix, not WASI.

os.EX_NOINPUT

Exit-kod som betyder att en inmatningsfil inte fanns eller inte var läsbar.

Tillgänglighet: Unix, not WASI.

os.EX_NOUSER

Exitkod som innebär att en angiven användare inte fanns.

Tillgänglighet: Unix, not WASI.

os.EX_NOHOST

Exitkod som betyder att en angiven värd inte fanns.

Tillgänglighet: Unix, not WASI.

os.EX_UNAVAILABLE

Exitkod som innebär att en önskad tjänst inte är tillgänglig.

Tillgänglighet: Unix, not WASI.

os.EX_SOFTWARE

Exitkod som betyder att ett internt programvarufel har upptäckts.

Tillgänglighet: Unix, not WASI.

os.EX_OSERR

Exitkod som betyder att ett operativsystemfel har upptäckts, t.ex. att det inte går att förgrena eller skapa en pipe.

Tillgänglighet: Unix, not WASI.

os.EX_OSFILE

Exit-kod som betyder att en systemfil inte fanns, inte kunde öppnas eller hade något annat fel.

Tillgänglighet: Unix, not WASI.

os.EX_CANTCREAT

Exitkod som innebär att en användarspecificerad utdatafil inte kunde skapas.

Tillgänglighet: Unix, not WASI.

os.EX_IOERR

Exit-kod som betyder att ett fel inträffade när I/O gjordes på en fil.

Tillgänglighet: Unix, not WASI.

os.EX_TEMPFAIL

Exitkod som betyder att ett tillfälligt fel inträffade. Detta indikerar något som kanske inte egentligen är ett fel, t.ex. en nätverksanslutning som inte kunde upprättas under en operation som kan omprövas.

Tillgänglighet: Unix, not WASI.

os.EX_PROTOCOL

Exitkod som innebär att ett protokollutbyte var olagligt, ogiltigt eller inte förstods.

Tillgänglighet: Unix, not WASI.

os.EX_NOPERM

Avslutningskod som innebär att det inte fanns tillräckliga behörigheter för att utföra åtgärden (men inte avsedd för filsystemsproblem).

Tillgänglighet: Unix, not WASI.

os.EX_CONFIG

Exitkod som innebär att något slags konfigurationsfel har inträffat.

Tillgänglighet: Unix, not WASI.

os.EX_NOTFOUND

Utgångskod som betyder något i stil med ”en post hittades inte”.

Tillgänglighet: Unix, not WASI.

os.fork()

Fork en underordnad process. Returnerar 0 i barnet och barnets process-id i föräldern. Om ett fel uppstår OSError tas upp.

Observera att vissa plattformar, inklusive FreeBSD <= 6.3 och Cygwin, har kända problem när fork() används från en tråd.

Utlöser en auditing event os.fork utan argument.

Varning

Om du använder TLS-uttag i ett program som anropar fork(), se varningen i ssl-dokumentationen.

Varning

På macOS är användningen av denna funktion osäker när den blandas med användning av system-API:er på högre nivå, och det inkluderar användning av urllib.request.

Ändrad i version 3.8: Anrop av fork() i en subinterpreter stöds inte längre (RuntimeError uppstår).

Ändrad i version 3.12: Om Python kan upptäcka att din process har flera trådar, ger os.fork() nu upphov till en DeprecationWarning.

Vi valde att ta upp detta som en varning, när det upptäcks, för att bättre informera utvecklare om ett designproblem som POSIX-plattformen specifikt noterar att det inte stöds. Även i kod som * verkar* fungera har det aldrig varit säkert att blanda trådning med os.fork() på POSIX-plattformar. Själva CPython-körtiden har alltid gjort API-anrop som inte är säkra att använda i barnprocessen när trådar fanns i föräldern (t.ex. malloc och free).

Användare av macOS eller användare av andra libc- eller malloc-implementationer än de som vanligtvis finns i glibc hittills är bland dem som redan är mer benägna att uppleva dödlägen när de kör sådan kod.

Se den här diskussionen om att fork är inkompatibel med trådar för tekniska detaljer om varför vi tar upp detta långvariga problem med plattformskompatibilitet för utvecklare.

Tillgänglighet: POSIX, not WASI, not Android, not iOS.

os.forkpty()

Fork en underordnad process, med en ny pseudoterminal som barnets kontrollterminal. Returnerar ett par (pid, fd), där pid är 0 i barnet, det nya barnets process-id i föräldern, och fd är filbeskrivaren för masteränden av pseudoterminalen. För en mer portabel metod, använd modulen pty. Om ett fel inträffar genereras OSError.

Utlöser en auditing event os.forkpty utan argument.

Varning

På macOS är användningen av denna funktion osäker när den blandas med användning av system-API:er på högre nivå, och det inkluderar användning av urllib.request.

Ändrad i version 3.8: Att anropa forkpty() i en subinterpreter stöds inte längre (RuntimeError utlöses).

Ändrad i version 3.12: Om Python kan upptäcka att din process har flera trådar, ger detta nu upphov till en DeprecationWarning. Se den längre förklaringen på os.fork().

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.kill(pid, sig, /)

Skicka signal sig till processen pid. Konstanter för de specifika signaler som är tillgängliga på värdplattformen definieras i modulen signal.

Windows: Signalerna signal.CTRL_C_EVENT och signal.CTRL_BREAK_EVENT är speciella signaler som endast kan skickas till konsolprocesser som delar ett gemensamt konsolfönster, t.ex. vissa subprocesser. Alla andra värden för sig leder till att processen ovillkorligen dödas av TerminateProcess API och utgångskoden sätts till sig.

Se även signal.pthread_kill().

Utlöser en auditing event os.kill med argumenten pid, sig.

Tillgänglighet: Unix, Windows, not WASI, not iOS.

Ändrad i version 3.2: Stöd för Windows har lagts till.

os.killpg(pgid, sig, /)

Skicka signalen sig till processgruppen pgid.

Utlöser en auditing event os.killpg med argumenten pgid, sig.

Tillgänglighet: Unix, not WASI, not iOS.

os.nice(increment, /)

Lägg till ökning till processens ”niceness”. Returnera den nya niceness.

Tillgänglighet: Unix, not WASI.

os.pidfd_open(pid, flags=0)

Returnerar en fildeskriptor som hänvisar till processen pid med flags inställt. Denna deskriptor kan användas för att utföra processhantering utan tävlingar och signaler.

Se pidfd_open(2) man page för mer information.

Tillgänglighet: Linux >= 5.3, Android >= build-time API level 31

Tillagd i version 3.9.

os.PIDFD_NONBLOCK

Denna flagga indikerar att filbeskrivaren kommer att vara icke-blockerande. Om den process som filbeskrivaren refererar till ännu inte har avslutats, kommer ett försök att vänta på filbeskrivaren med waitid(2) omedelbart att returnera felet EAGAIN istället för att blockera.

Tillgänglighet: Linux >= 5.10

Tillagd i version 3.12.

os.plock(op, /)

Låser in programsegment i minnet. Värdet på op (definierat i <sys/lock.h>) bestämmer vilka segment som ska låsas.

Tillgänglighet: Unix, not WASI, not iOS.

os.popen(cmd, mode='r', buffering=-1)

Öppnar en pipe till eller från kommandot cmd. Returvärdet är ett öppet filobjekt anslutet till pipen, som kan läsas eller skrivas beroende på om mode är 'r' (standard) eller 'w'. Argumentet buffering har samma betydelse som motsvarande argument i den inbyggda funktionen open(). Det returnerade filobjektet läser eller skriver textsträngar istället för bytes.

Metoden close returnerar None` om subprocessen avslutades framgångsrikt, eller subprocessens returkod om det uppstod ett fel. På POSIX-system representerar returkoden, om den är positiv, processens returvärde vänsterförskjutet med en byte. Om returkoden är negativ har processen avslutats med den signal som ges av returkodens negerade värde. (Returvärdet kan t.ex. vara - signal.SIGKILL om subprocessen dödades) På Windows-system innehåller returvärdet den signerade heltalsreturkoden från barnprocessen.

På Unix kan waitstatus_to_exitcode() användas för att konvertera resultatet av close-metoden (exitstatus) till en exitkod om den inte är None. I Windows är resultatet av close-metoden direkt utgångskoden (eller None).

Detta implementeras med hjälp av subprocess.Popen; se den klassens dokumentation för mer kraftfulla sätt att hantera och kommunicera med subprocesser.

Tillgänglighet: not WASI, not Android, not iOS.

Anteckning

Python UTF-8 Mode påverkar kodningar som används för cmd och pipe-innehåll.

popen() är ett enkelt omslag runt subprocess.Popen. Använd subprocess.Popen eller subprocess.run() för att kontrollera alternativ som kodning.

Föråldrad sedan version 3.14: Funktionen är soft deprecated och bör inte längre användas för att skriva ny kod. Modulen subprocess rekommenderas istället.

os.posix_spawn(path, argv, env, *, file_actions=None, setpgroup=None, resetids=False, setsid=False, setsigmask=(), setsigdef=(), scheduler=None)

Omfattar C-bibliotekets posix_spawn() API för användning från Python.

De flesta användare bör använda subprocess.run() istället för posix_spawn().

Argumenten path, args och env, som endast är positionella, liknar execve(). env får vara None, i vilket fall den aktuella processens miljö används.

Parametern path är sökvägen till den körbara filen. Sökväg bör innehålla en katalog. Använd posix_spawnp() för att skicka en körbar fil utan katalog.

Argumentet file_actions kan vara en sekvens av tupler som beskriver åtgärder som ska vidtas för specifika filbeskrivare i underordnad process mellan C-biblioteksimplementeringens steg fork() och exec(). Det första elementet i varje tupel måste vara en av de tre typindikatorer som anges nedan och som beskriver de återstående tupelelementen:

os.POSIX_SPAWN_OPEN

(os.POSIX_SPAWN_OPEN, fd, path, flags, mode)

Utför os.dup2(os.open(path, flags, mode), fd).

os.POSIX_SPAWN_CLOSE

(os.POSIX_SPAWN_CLOSE, fd)

Utför os.close(fd).

os.POSIX_SPAWN_DUP2

(os.POSIX_SPAWN_DUP2, fd, new_fd)

Utför os.dup2(fd, new_fd).

os.POSIX_SPAWN_CLOSEFROM

(os.POSIX_SPAWN_CLOSEFROM, fd)

Utför os.closerange(fd, INF).

Dessa tuples motsvarar C-bibliotekets posix_spawn_file_actions_addopen(), posix_spawn_file_actions_addclose(), posix_spawn_file_actions_adddup2(), och posix_spawn_file_actions_addclosefrom_np() API-anrop som används för att förbereda för själva posix_spawn()-anropet.

Argumentet setpgroup ställer in barnets processgrupp till det angivna värdet. Om det angivna värdet är 0 blir barnets processgrupps-ID detsamma som dess process-ID. Om värdet för setpgroup inte anges kommer barnet att ärva förälderns processgrupps-ID. Detta argument motsvarar C-bibliotekets POSIX_SPAWN_SETPGROUP-flagga.

Om argumentet resetids är True återställs det effektiva UID:t och GID:t för barnet till det verkliga UID:t och GID:t för den överordnade processen. Om argumentet är False behåller barnet förälderns effektiva UID och GID. I båda fallen gäller att om behörighetsbitarna set-user-ID och set-group-ID är aktiverade i den körbara filen, kommer deras effekt att åsidosätta inställningen av det effektiva UID och GID. Detta argument motsvarar C-bibliotekets POSIX_SPAWN_RESETIDS-flagga.

Om argumentet setsid är True kommer det att skapa ett nytt sessions-ID för posix_spawn. setsid kräver POSIX_SPAWN_SETSID eller POSIX_SPAWN_SETSID_NP flagga. Annars kommer NotImplementedError att tas upp.

Argumentet setsigmask ställer in signalmasken till den angivna signaluppsättningen. Om parametern inte används ärver barnet förälderns signalmask. Detta argument motsvarar C-bibliotekets POSIX_SPAWN_SETSIGMASK-flagga.

Argumentet sigdef kommer att återställa inställningen för alla signaler i den angivna uppsättningen. Detta argument motsvarar C-bibliotekets POSIX_SPAWN_SETSIGDEF-flagga.

Argumentet scheduler måste vara en tupel som innehåller den (valfria) schemaläggningspolicyn och en instans av sched_param med schemaläggningsparametrarna. Ett värde av None i stället för schemaläggningspolicyn anger att den inte tillhandahålls. Detta argument är en kombination av C-bibliotekets POSIX_SPAWN_SETSCHEDPARAM och POSIX_SPAWN_SETSCHEDULER flaggor.

Utlöser en auditing event os.posix_spawn med argumenten path, argv, env.

Tillagd i version 3.8.

Ändrad i version 3.13: env-parametern accepterar None. os.POSIX_SPAWN_CLOSEFROM finns tillgängligt på plattformar där posix_spawn_file_actions_addclosefrom_np() finns.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.posix_spawnp(path, argv, env, *, file_actions=None, setpgroup=None, resetids=False, setsid=False, setsigmask=(), setsigdef=(), scheduler=None)

Omfattar C-bibliotekets posix_spawnp() API för användning från Python.

Liknar posix_spawn() förutom att systemet söker efter den exekverbara filen i listan över kataloger som anges av miljövariabeln PATH (på samma sätt som för execvp(3)).

Utlöser en auditing event os.posix_spawn med argumenten path, argv, env.

Tillagd i version 3.8.

Tillgänglighet: POSIX, not WASI, not Android, not iOS.

Se posix_spawn() dokumentation.

os.register_at_fork(*, before=None, after_in_parent=None, after_in_child=None)

Registrera anropbara filer som ska köras när en ny underordnad process förgrenas med hjälp av os.fork() eller liknande API:er för kloning av processer. Parametrarna är valfria och endast nyckelord. Var och en specificerar en annan anropspunkt.

  • before är en funktion som anropas innan en barnprocess forkas.

  • after_in_parent är en funktion som anropas från den överordnade processen efter att ha forkat en underordnad process.

  • after_in_child är en funktion som anropas från den underordnade processen.

Dessa anrop görs endast om kontrollen förväntas återvända till Python-tolken. En typisk subprocess-start kommer inte att utlösa dem eftersom barnet inte kommer att återgå till tolken.

Funktioner som registrerats för utförande före förgrening anropas i omvänd registreringsordning. Funktioner som registrerats för utförande efter förgrening (antingen i föräldern eller i barnet) anropas i registreringsordning.

Observera att fork()-anrop som görs av C-kod från tredje part inte får anropa dessa funktioner, såvida den inte uttryckligen anropar PyOS_BeforeFork(), PyOS_AfterFork_Parent() och PyOS_AfterFork_Child().

Det finns inget sätt att avregistrera en funktion.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Tillagd i version 3.7.

os.spawnl(mode, path, ...)
os.spawnle(mode, path, ..., env)
os.spawnlp(mode, file, ...)
os.spawnlpe(mode, file, ..., env)
os.spawnv(mode, path, args)
os.spawnve(mode, path, args, env)
os.spawnvp(mode, file, args)
os.spawnvpe(mode, file, args, env)

Exekvera programmet sökväg i en ny process.

(Observera att modulen subprocess ger kraftfullare möjligheter att starta nya processer och hämta deras resultat; att använda den modulen är att föredra framför att använda dessa funktioner. Se särskilt avsnittet Ersätta äldre funktioner med modulen subprocess)

Om mode är P_NOWAIT, returnerar denna funktion process-ID för den nya processen; om mode är P_WAIT, returneras processens exitkod om den avslutas normalt, eller -signal, där signal är den signal som dödade processen. I Windows är processens id faktiskt processens handtag, så det kan användas med funktionen waitpid().

Obs på VxWorks, denna funktion returnerar inte -signal när den nya processen dödas. Istället ger den upphov till ett OSError-undantag.

”l”- och ”v”-varianterna av spawn*-funktionerna skiljer sig åt i hur kommandoradsargument skickas. ”l”-varianterna är kanske lättast att arbeta med om antalet parametrar är fast när koden skrivs; de enskilda parametrarna blir helt enkelt ytterligare parametrar till spawnl*()-funktionerna. ”v”-varianterna är bra när antalet parametrar är variabelt och argumenten skickas i en lista eller tupel som parametern args. I båda fallen måste argumenten till barnprocessen börja med namnet på det kommando som körs.

De varianter som innehåller ett andra ”p” i slutet (spawnlp(), spawnlpe(), spawnvp() och spawnvpe()) använder miljövariabeln PATH för att hitta programmet fil. När miljön ersätts (med någon av spawn*e-varianterna, som diskuteras i nästa stycke), används den nya miljön som källa för variabeln PATH. De andra varianterna, spawnl(), spawnle(), spawnv() och spawnve(), kommer inte att använda variabeln PATH för att hitta den körbara filen; path måste innehålla en lämplig absolut eller relativ sökväg.

För spawnle(), spawnlpe(), spawnve() och spawnvpe() (notera att alla dessa slutar på ”e”) måste parametern env vara en mappning som används för att definiera miljövariablerna för den nya processen (de används istället för den aktuella processens miljö); funktionerna spawnl(), spawnlp(), spawnv() och spawnvp() gör alla att den nya processen ärver den aktuella processens miljö. Observera att nycklar och värden i env-ordlistan måste vara strängar; ogiltiga nycklar eller värden leder till att funktionen misslyckas med ett returvärde på 127.

Som exempel är följande anrop till spawnlp() och spawnvpe() likvärdiga:

import os
os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')

L = ['cp', 'index.html', '/dev/null']
os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)

Utlöser en auditing-händelse os.spawn med argumenten mode, path, args, env.

Tillgänglighet: Unix, Windows, not WASI, not Android, not iOS.

spawnlp(), spawnlpe(), spawnvp() och spawnvpe() är inte tillgängliga i Windows. spawnle() och spawnve() är inte tråd-säkra i Windows; vi rekommenderar att du använder modulen subprocess istället.

Ändrad i version 3.6: Accepterar en path-like object.

Föråldrad sedan version 3.14: Dessa funktioner är soft deprecated och bör inte längre användas för att skriva ny kod. Modulen subprocess rekommenderas istället.

os.P_NOWAIT
os.P_NOWAITO

Möjliga värden för parametern mode för funktionerna i spawn*-familjen. Om något av dessa värden anges kommer funktionerna spawn* att returneras så snart den nya processen har skapats, med processens id som returvärde.

Tillgänglighet: Unix, Windows.

os.P_WAIT

Möjligt värde för parametern mode till spawn*-familjen av funktioner. Om detta anges som mode, kommer funktionerna spawn* inte att återvända förrän den nya processen har körts färdigt och kommer att returnera processens utgångskod om körningen är lyckad, eller -signal om en signal dödar processen.

Tillgänglighet: Unix, Windows.

os.P_DETACH
os.P_OVERLAY

Möjliga värden för parametern mode till spawn*-familjen av funktioner. Dessa är mindre portabla än de som listas ovan. P_DETACH liknar P_NOWAIT, men den nya processen kopplas loss från den anropande processens konsol. Om P_OVERLAY används kommer den aktuella processen att ersättas; funktionen spawn* kommer inte att returneras.

Tillgänglighet: Windows.

os.startfile(path[, operation][, arguments][, cwd][, show_cmd])

Starta en fil med tillhörande applikation.

Om operation inte anges fungerar detta som att dubbelklicka på filen i Utforskaren eller att ange filnamnet som argument till kommandot start i det interaktiva kommandohöljet: filen öppnas med det program (om något) som är kopplat till filtillägget.

När en annan operation anges måste det vara ett ”kommandoverb” som anger vad som ska göras med filen. Vanliga verb som dokumenterats av Microsoft är 'open', 'print' och 'edit' (som används för filer) samt 'explore' och 'find' (som används för kataloger).

När du startar en applikation ska du ange argument som ska skickas som en enda sträng. Detta argument kanske inte har någon effekt när funktionen används för att starta ett dokument.

Standardarbetskatalogen ärvs, men kan åsidosättas med argumentet cwd. Detta bör vara en absolut sökväg. En relativ sökväg kommer att lösas mot detta argument.

Använd show_cmd för att åsidosätta standardfönsterstilen. Om detta har någon effekt beror på vilken applikation som startas. Värdena är heltal som stöds av Win32 ShellExecute()-funktionen.

startfile() returneras så snart den associerade applikationen har startats. Det finns inget alternativ för att vänta på att programmet ska stängas och inget sätt att hämta programmets exitstatus. Parametern path är relativ i förhållande till den aktuella katalogen eller cwd. Om du vill använda en absolut sökväg måste du se till att det första tecknet inte är ett snedstreck ('/') Använd pathlib eller funktionen os.path.normpath() för att säkerställa att sökvägarna är korrekt kodade för Win32.

För att minska tolkens startkostnader löses inte Win32 ShellExecute()-funktionen förrän denna funktion anropas första gången. Om funktionen inte kan lösas kommer NotImplementedError att anges.

Utlöser en auditing event os.startfile med argumenten path, operation.

Utlöser en auditing event os.startfile/2 med argumenten path, operation, arguments, cwd, show_cmd.

Tillgänglighet: Windows.

Ändrad i version 3.10: Lagt till argumenten arguments, cwd och show_cmd samt granskningshändelsen os.startfile/2.

os.system(command)

Utför kommandot (en sträng) i ett underskal. Detta implementeras genom att anropa Standard C-funktionen system(), och har samma begränsningar. Ändringar i sys.stdin etc. återspeglas inte i miljön för det exekverade kommandot. Om command genererar någon utdata kommer den att skickas till tolkens standardutdataflöde. C-standarden specificerar inte innebörden av returvärdet för C-funktionen, så returvärdet för Python-funktionen är systemberoende.

På Unix är returvärdet processens utgångsstatus kodad i det format som anges för wait().

I Windows är returvärdet det som returneras av systemets skal efter att kommando har körts. Skalet anges av Windows-miljövariabeln COMSPEC: det är vanligtvis cmd.exe, som returnerar utgångsstatus för kommandot som körs; på system som använder ett icke inbyggt skal, se dokumentationen för ditt skal.

Modulen subprocess ger mer kraftfulla möjligheter att starta nya processer och hämta deras resultat; det rekommenderas att använda den modulen innan du använder den här funktionen. Se avsnittet Ersätta äldre funktioner med modulen subprocess i subprocess-dokumentationen för några användbara recept.

På Unix kan waitstatus_to_exitcode() användas för att konvertera resultatet (exitstatus) till en exitkod. På Windows är resultatet direkt utgångskoden.

Utlöser en auditing event os.system med argumentet command.

Tillgänglighet: Unix, Windows, not WASI, not Android, not iOS.

os.times()

Returnerar de aktuella globala processtiderna. Returvärdet är ett objekt med fem attribut:

  • user - användarens tid

  • system - systemtid

  • children_user - användartid för alla underordnade processer

  • children_system - systemtid för alla underordnade processer

  • elapsed - förfluten realtid sedan en bestämd tidpunkt i det förflutna

För bakåtkompatibilitet fungerar detta objekt också som en femtupel som innehåller user, system, children_user, children_system och elapsed i den ordningen.

Se manualsidan för Unix times(2) och times(3) på Unix eller the GetProcessTimes MSDN på Windows. På Windows är endast user och system kända; de andra attributen är noll.

Tillgänglighet: Unix, Windows.

Ändrad i version 3.3: Returtypen ändrades från en tupel till ett tupelliknande objekt med namngivna attribut.

os.wait()

Vänta på att en underordnad process ska avslutas och returnera en tupel som innehåller dess pid- och utgångsstatusindikation: ett 16-bitars tal, vars låga byte är signalnumret som dödade processen och vars höga byte är utgångsstatusen (om signalnumret är noll); den höga biten i den låga byten sätts om en kärnfil producerades.

Om det inte finns några barn som kan väntas på, uppstår ChildProcessError.

waitstatus_to_exitcode() kan användas för att konvertera utgångsstatus till en utgångskod.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Se även

De andra wait*()-funktionerna som dokumenteras nedan kan användas för att vänta på att en specifik underordnad process ska slutföras och har fler alternativ. waitpid() är den enda som också finns tillgänglig i Windows.

os.waitid(idtype, id, options, /)

Vänta på att en underordnad process ska slutföras.

idtype kan vara P_PID, P_PGID, P_ALL eller (på Linux) P_PIDFD. Tolkningen av id beror på detta; se deras individuella beskrivningar.

options är en ELLER-kombination av flaggor. Minst en av WEXITED, WSTOPPED eller WCONTINUED krävs; WNOHANG och WNOWAIT är ytterligare valfria flaggor.

Returvärdet är ett objekt som representerar de data som finns i strukturen siginfo_t med följande attribut:

  • si_pid (process-ID)

  • si_uid (barnets verkliga användar-ID)

  • si_signo (alltid SIGCHLD)

  • si_status (utgångsstatus eller signalnummer, beroende på si_code)

  • si_code (se CLD_EXITED för möjliga värden)

Om WNOHANG anges och det inte finns några matchande barn i det begärda tillståndet, returneras None. Annars, om det inte finns några matchande barn som kan väntas på, ChildProcessError.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Tillagd i version 3.3.

Ändrad i version 3.13: Den här funktionen är nu tillgänglig även på macOS.

os.waitpid(pid, options, /)

Detaljerna för denna funktion skiljer sig åt mellan Unix och Windows.

På Unix: Vänta på att en underordnad process som anges med process-ID pid ska avslutas och returnera en tupel som innehåller dess process-ID och uppgift om avslutningsstatus (kodad som för wait()). Semantiken i anropet påverkas av värdet på heltalet options, som bör vara 0 för normal drift.

Om pid är större än 0, begär waitpid() statusinformation för den specifika processen. Om pid är 0, begärs status för alla underordnade i processgruppen för den aktuella processen. Om pid är -1 gäller begäran alla barn till den aktuella processen. Om pid är mindre än -1 begärs status för alla processer i processgruppen -pid (det absoluta värdet av pid).

options är en ELLER-kombination av flaggor. Om den innehåller WNOHANG och det inte finns några matchande barn i det begärda tillståndet returneras (0, 0). Annars, om det inte finns några matchande barn som kan väntas på, ChildProcessError. Andra alternativ som kan användas är WUNTRACED och WCONTINUED.

I Windows: Väntar på att en process som anges med processhandtaget pid ska avslutas och returnerar en tupel som innehåller pid och dess utgångsstatus, förskjuten 8 bitar åt vänster (förskjutningen gör det lättare att använda funktionen på flera plattformar). En pid som är mindre än eller lika med 0 har ingen speciell betydelse i Windows, och ger upphov till ett undantag. Värdet på heltalet options har ingen effekt. pid kan referera till vilken process som helst vars id är känt, inte nödvändigtvis en barnprocess. Funktionerna spawn* som anropas med P_NOWAIT returnerar lämpliga processhandtag.

waitstatus_to_exitcode() kan användas för att konvertera utgångsstatus till en utgångskod.

Tillgänglighet: Unix, Windows, not WASI, not Android, not iOS.

Ändrad i version 3.5: Om systemanropet avbryts och signalhanteraren inte ger upphov till ett undantag, försöker funktionen nu göra om systemanropet istället för att ge upphov till ett InterruptedError-undantag (se PEP 475 för förklaringen).

os.wait3(options)

Liknar waitpid(), förutom att inget process-ID-argument anges och en tupel med tre element som innehåller barnets process-ID, avslutningsstatus och information om resursanvändning returneras. Se resource.getrusage() för detaljer om information om resursanvändning. Argumentet options är detsamma som det som anges i waitpid() och wait4().

waitstatus_to_exitcode() kan användas för att konvertera utgångsstatus till en utgångskod.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.wait4(pid, options)

Liknar waitpid(), förutom att en tupel med tre element returneras, som innehåller barnets process-ID, avslutningsstatusindikation och information om resursanvändning. Se resource.getrusage() för detaljer om information om resursanvändning. Argumenten till wait4() är desamma som de som anges till waitpid().

waitstatus_to_exitcode() kan användas för att konvertera utgångsstatus till en utgångskod.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.P_PID
os.P_PGID
os.P_ALL
os.P_PIDFD

Detta är de möjliga värdena för idtype i waitid(). De påverkar hur id tolkas:

  • P_PID - vänta på det barn vars PID är id.

  • P_PGID - vänta på alla barn vars progressgrupp-ID är id.

  • P_ALL - vänta på valfritt barn; id ignoreras.

  • P_PIDFD - vänta på det barn som identifieras av filbeskrivaren id (en processfilbeskrivare som skapats med pidfd_open()).

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Anteckning

P_PIDFD är endast tillgängligt på Linux >= 5.4.

Tillagd i version 3.3.

Tillagd i version 3.9: Konstanten P_PIDFD.

os.WCONTINUED

Denna options-flagga för waitpid(), wait3(), wait4() och waitd() gör att underordnade processer rapporteras om de har fortsatt från ett jobbkontrollstopp sedan de senast rapporterades.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WEXITED

Denna options-flagga för waitid() gör att barnprocesser som har avslutats rapporteras.

De andra wait*-funktionerna rapporterar alltid barn som har avslutats, så det här alternativet är inte tillgängligt för dem.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Tillagd i version 3.3.

os.WSTOPPED

Denna options-flagga för waitid() gör att barnprocesser som har stoppats genom att en signal har levererats rapporteras.

Detta alternativ är inte tillgängligt för de andra funktionerna i wait*.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Tillagd i version 3.3.

os.WUNTRACED

Denna options-flagga för waitpid(), wait3() och wait4() gör att barnprocesser också rapporteras om de har stoppats men deras aktuella tillstånd inte har rapporterats sedan de stoppades.

Detta alternativ är inte tillgängligt för waitid().

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WNOHANG

Denna options-flagga gör att waitpid(), wait3(), wait4() och waitd() returneras direkt om ingen status för barnprocesser är tillgänglig omedelbart.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WNOWAIT

Denna options-flagga gör att waitid() lämnar barnet i ett vänteläge, så att ett senare wait*()-anrop kan användas för att hämta barnets statusinformation igen.

Detta alternativ är inte tillgängligt för de andra funktionerna i wait*.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.CLD_EXITED
os.CLD_KILLED
os.CLD_DUMPED
os.CLD_TRAPPED
os.CLD_STOPPED
os.CLD_CONTINUED

Det här är de möjliga värdena för si_code i resultatet som returneras av waitid().

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Tillagd i version 3.3.

Ändrad i version 3.9: Lagt till värdena CLD_KILLED och CLD_STOPPED.

os.waitstatus_to_exitcode(status)

Konvertera en väntestatus till en exitkod.

På Unix:

  • Om processen avslutades på normalt sätt (om WIFEXITED(status) är sant), returneras processens avslutningsstatus (return WEXITSTATUS(status)): resultat större än eller lika med 0.

  • Om processen avslutades av en signal (om WIFSIGNALED(status) är true), returnera -signum där signum är numret på den signal som orsakade att processen avslutades (returnera -WTERMSIG(status)): resultat mindre än 0.

  • I annat fall, skapa ett ValueError.

I Windows returneras status högerförskjutet med 8 bitar.

Under Unix, om processen spåras eller om waitpid() anropades med WUNTRACED som alternativ, måste anroparen först kontrollera om WIFSTOPPED(status) är sant. Denna funktion får inte anropas om WIFSTOPPED(status) är sant.

Tillgänglighet: Unix, Windows, not WASI, not Android, not iOS.

Tillagd i version 3.9.

Följande funktioner tar en processstatuskod som returneras av system(), wait() eller waitpid() som parameter. De kan användas för att avgöra vad som händer med en process.

os.WCOREDUMP(status, /)

Returnerar True om en kärndump genererades för processen, annars returneras False.

Denna funktion bör endast användas om WIFSIGNALED() är true.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WIFCONTINUED(status)

Returnerar True om ett stoppat barn har återupptagits genom leverans av SIGCONT (om processen har fortsatt från ett jobbkontrollstopp), annars returneras False.

Se alternativet WCONTINUED.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WIFSTOPPED(status)

Returnerar True om processen stoppades genom att en signal levererades, annars returneras False.

WIFSTOPPED() returnerar endast True om waitpid()-anropet gjordes med WUNTRACED-alternativet eller när processen spåras (se ptrace(2)).

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WIFSIGNALED(status)

Returnerar True om processen avslutades av en signal, annars returneras False.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WIFEXITED(status)

Returnerar True om processen avslutades normalt, det vill säga genom att anropa exit() eller _exit(), eller genom att återvända från main(); annars returneras False.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WEXITSTATUS(status)

Returnerar processens exitstatus.

Denna funktion bör endast användas om WIFEXITED() är true.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WSTOPSIG(status)

Returnera den signal som fick processen att stanna.

Denna funktion bör endast användas om WIFSTOPPED() är true.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

os.WTERMSIG(status)

Returnerar numret på den signal som fick processen att avslutas.

Denna funktion bör endast användas om WIFSIGNALED() är true.

Tillgänglighet: Unix, not WASI, not Android, not iOS.

Gränssnitt till schemaläggaren

Dessa funktioner styr hur en process tilldelas CPU-tid av operativsystemet. De är endast tillgängliga på vissa Unix-plattformar. För mer detaljerad information, se Unix manpages.

Tillagd i version 3.3.

Följande schemaläggningsprinciper exponeras om de stöds av operativsystemet.

os.SCHED_OTHER

Standardpolicy för schemaläggning.

os.SCHED_BATCH

Schemaläggningspolicy för CPU-intensiva processer som försöker bevara interaktiviteten på resten av datorn.

os.SCHED_DEADLINE

Schemaläggningspolicy för uppgifter med tidsbegränsningar.

Tillagd i version 3.14.

os.SCHED_IDLE

Schemaläggningspolicy för bakgrundsuppgifter med extremt låg prioritet.

os.SCHED_NORMAL

Alias för SCHED_OTHER.

Tillagd i version 3.14.

os.SCHED_SPORADIC

Schemaläggningspolicy för sporadiska serverprogram.

os.SCHED_FIFO

Först in, först ut är principen för schemaläggning.

os.SCHED_RR

En policy för schemaläggning enligt round-robin-principen.

os.SCHED_RESET_ON_FORK

Denna flagga kan OR:as med vilken annan schemaläggningspolicy som helst. När en process med den här flaggan aktiverad förgrenar sig, återställs dess barns schemaläggningspolicy och prioritet till standardvärdet.

class os.sched_param(sched_priority)

Denna klass representerar inställbara schemaläggningsparametrar som används i sched_setparam(), sched_setscheduler() och sched_getparam(). Den är oföränderlig.

För närvarande finns det bara en möjlig parameter:

sched_priority

Schemaläggningsprioritet för en schemaläggningspolicy.

os.sched_get_priority_min(policy)

Hämta det lägsta prioritetsvärdet för policy. policy är en av policykonstanterna för schemaläggning ovan.

os.sched_get_priority_max(policy)

Hämta det högsta prioritetsvärdet för policy. policy är en av policykonstanterna för schemaläggning ovan.

os.sched_setscheduler(pid, policy, param, /)

Ställ in schemaläggningspolicyn för processen med PID pid. En pid på 0 betyder att det är den anropande processen. policy är en av policykonstanterna för schemaläggning ovan. param är en instans av sched_param.

os.sched_getscheduler(pid, /)

Returnerar schemaläggningspolicyn för processen med PID pid. En pid på 0 betyder att det är den anropande processen. Resultatet är en av schemaläggningspolicykonstanterna ovan.

os.sched_setparam(pid, param, /)

Ställ in schemaläggningsparametrarna för processen med PID pid. En pid på 0 betyder att det är den anropande processen. param är en instans av sched_param.

os.sched_getparam(pid, /)

Returnerar schemaläggningsparametrarna som en sched_param-instans för processen med PID pid. En pid på 0 betyder att det är den anropande processen.

os.sched_rr_get_interval(pid, /)

Returnerar round-robin-kvantumet i sekunder för processen med PID pid. En pid på 0 betyder att det är den anropande processen.

os.sched_yield()

Överlämnar frivilligt processorn. Se sched_yield(2) för mer information.

os.sched_setaffinity(pid, mask, /)

Begränsa processen med PID pid (eller den aktuella processen om den är noll) till en uppsättning processorer. mask är en iterabel av heltal som representerar den uppsättning processorer som processen ska begränsas till.

os.sched_getaffinity(pid, /)

Returnera uppsättningen CPU:er som processen med PID pid är begränsad till.

Om pid är noll, returneras den uppsättning CPU:er som den anropande tråden i den aktuella processen är begränsad till.

Se även funktionen process_cpu_count().

Diverse systeminformation

os.confstr(name, /)

Returnerar strängvärderade systemkonfigurationsvärden. name anger det konfigurationsvärde som ska hämtas; det kan vara en sträng som är namnet på ett definierat systemvärde; dessa namn anges i ett antal standarder (POSIX, Unix 95, Unix 98 m.fl.). Vissa plattformar definierar även ytterligare namn. De namn som är kända av värdoperativsystemet anges som nycklar i ordlistan confstr_names. För konfigurationsvariabler som inte ingår i denna mappning accepteras också att name ersätts med ett heltal.

Om konfigurationsvärdet som anges av name inte är definierat returneras None.

Om name är en sträng och inte är känd, genereras ValueError. Om ett specifikt värde för name inte stöds av värdsystemet, även om det ingår i confstr_names, genereras ett OSError med errno.EINVAL som felnummer.

os.confstr_names

Ordbok som mappar namn som accepteras av confstr() till de heltalsvärden som definieras för dessa namn av värdoperativsystemet. Detta kan användas för att bestämma den uppsättning namn som är kända av systemet.

os.cpu_count()

Returnerar antalet logiska processorer i systemet. Returnerar None om det inte är fastställt.

Funktionen process_cpu_count() kan användas för att få fram antalet logiska processorer som kan användas av den anropande tråden i den aktuella processen.

Tillagd i version 3.4.

Ändrad i version 3.13: Om -X cpu_count anges eller om PYTHON_CPU_COUNT anges, returnerar cpu_count() det åsidosatta värdet n.

os.getloadavg()

Returnerar antalet processer i systemets körkö i genomsnitt under de senaste 1, 5 och 15 minuterna eller ger OSError om belastningsgenomsnittet inte kunde erhållas.

os.process_cpu_count()

Hämta antalet logiska processorer som kan användas av den anropande tråden i den aktuella processen. Returnerar None om det inte är fastställt. Det kan vara mindre än cpu_count() beroende på CPU-affinitet.

Funktionen cpu_count() kan användas för att få fram antalet logiska processorer i systemet.

Om -X cpu_count anges eller om PYTHON_CPU_COUNT anges, returnerar process_cpu_count() det åsidosatta värdet n.

Se även funktionen sched_getaffinity().

Tillagd i version 3.13.

os.sysconf(name, /)

Returnerar heltalsvärderade systemkonfigurationsvärden. Om konfigurationsvärdet som anges av name inte är definierat, returneras -1. Kommentarerna om parametern name för confstr() gäller även här; ordlistan som ger information om de kända namnen finns i sysconf_names.

os.sysconf_names

Ordbok som mappar namn som accepteras av sysconf() till de heltalsvärden som värdoperativsystemet definierar för dessa namn. Detta kan användas för att bestämma den uppsättning namn som är kända av systemet.

Ändrad i version 3.11: Lägg till namnet 'SC_MINSIGSTKSZ'.

Följande datavärden används för att stödja operationer för manipulering av sökvägen. Dessa är definierade för alla plattformar.

Operationer på högre nivå för sökvägar definieras i modulen os.path.

os.curdir

Den konstanta sträng som används av operativsystemet för att hänvisa till den aktuella katalogen. Detta är '.' för Windows och POSIX. Finns även tillgänglig via os.path.

os.pardir

Den konstanta sträng som används av operativsystemet för att hänvisa till den överordnade katalogen. Detta är '...' för Windows och POSIX. Finns även tillgänglig via os.path.

os.sep

Tecknet som används av operativsystemet för att separera sökvägskomponenter. Detta är '/' för POSIX och '\\' för Windows. Observera att det inte är tillräckligt att känna till detta för att kunna analysera eller sammanfoga sökvägar — använd os.path.split() och os.path.join() — men det är ibland användbart. Finns även tillgängligt via os.path.

os.altsep

Ett alternativt tecken som används av operativsystemet för att separera sökvägsnamnets komponenter, eller None om det bara finns ett separatortecken. Detta är inställt på '/' på Windows-system där sep är en backslash. Finns även tillgängligt via os.path.

os.extsep

Det tecken som skiljer basfilnamnet från tillägget, t.ex. '.' i os.py. Finns även tillgängligt via os.path.

os.pathsep

Det tecken som används av operativsystemet för att separera sökvägskomponenter (som i PATH), t.ex. ':' för POSIX eller ';' för Windows. Finns även tillgängligt via os.path.

os.defpath

Den standardsökväg som används av exec*p* och spawn*p* om miljön inte har en 'PATH'-nyckel. Finns även tillgänglig via os.path.

os.linesep

Den sträng som används för att separera (eller snarare avsluta) rader på den aktuella plattformen. Det kan vara ett enda tecken, t.ex. '\n' för POSIX, eller flera tecken, t.ex. '\r\n' för Windows. Använd inte os.linesep som radavslutare när du skriver filer som öppnas i textläge (standard); använd istället ett enda '\n' på alla plattformar.

os.devnull

Filsökvägen till null-enheten. Till exempel: '/dev/null' för POSIX, 'nul' för Windows. Finns även tillgänglig via os.path.

os.RTLD_LAZY
os.RTLD_NOW
os.RTLD_GLOBAL
os.RTLD_LOCAL
os.RTLD_NODELETE
os.RTLD_NOLOAD
os.RTLD_DEEPBIND

Flaggor för användning med funktionerna setdlopenflags() och getdlopenflags(). Se Unix manualsida dlopen(3) för vad de olika flaggorna betyder.

Tillagd i version 3.3.

Slumptal

os.getrandom(size, flags=0)

Hämta upp till storlek slumpmässiga byte. Funktionen kan returnera färre byte än vad som begärts.

Dessa byte kan användas för att starta slumptalsgeneratorer i användarutrymmet eller för kryptografiska ändamål.

getrandom() förlitar sig på entropi som samlas in från enhetsdrivrutiner och andra källor till miljöbrus. Onödig läsning av stora mängder data kommer att ha en negativ inverkan på andra användare av enheterna /dev/random och /dev/urandom.

Argumentet flags är en bitmask som kan innehålla noll eller flera av följande värden i OR-kombination: os.GRND_RANDOM och GRND_NONBLOCK.

Se även Linux getrandom() manual page.

Tillgänglighet: Linux >= 3.17.

Tillagd i version 3.6.

os.urandom(size, /)

Returnerar en bytestring med storlek slumpmässiga bytes som lämpar sig för kryptografisk användning.

Denna funktion returnerar slumpmässiga bytes från en OS-specifik slumpkälla. Den returnerade datan bör vara tillräckligt oförutsägbar för kryptografiska tillämpningar, även om dess exakta kvalitet beror på OS-implementeringen.

På Linux, om syscall getrandom() är tillgängligt, används det i blockeringsläge: blockera tills systemets urandom-entropipool är initialiserad (128 bitar entropi samlas in av kärnan). Se PEP 524 för förklaringen. På Linux kan funktionen getrandom() användas för att hämta slumpmässiga byte i icke-blockerande läge (med flaggan GRND_NONBLOCK) eller för att polla tills systemets urandom-entropipool har initialiserats.

På ett Unix-liknande system läses slumpmässiga byte från enheten /dev/urandom. Om enheten /dev/urandom inte är tillgänglig eller inte kan läsas, uppstår undantaget NotImplementedError.

I Windows används BCryptGenRandom().

Se även

Modulen secrets tillhandahåller funktioner på högre nivå. För ett lättanvänt gränssnitt till den slumptalsgenerator som tillhandahålls av din plattform, se random.SystemRandom.

Ändrad i version 3.5: På Linux 3.17 och nyare används nu syscallen getrandom() när den är tillgänglig. På OpenBSD 5.6 och nyare används nu C-funktionen getentropy(). Dessa funktioner undviker användning av en intern filbeskrivare.

Ändrad i version 3.5.2: På Linux, om getrandom() syscall blockerar (urandom entropi pool är inte initialiserad ännu), fall tillbaka på att läsa /dev/urandom.

Ändrad i version 3.6: På Linux används nu getrandom() i blockeringsläge för att öka säkerheten.

Ändrad i version 3.11: På Windows används BCryptGenRandom() istället för CryptGenRandom() som är föråldrad.

os.GRND_NONBLOCK

Som standard blockeras getrandom() vid läsning från /dev/random om inga slumpmässiga byte finns tillgängliga, och vid läsning från /dev/urandom blockeras den om entropipoolen ännu inte har initialiserats.

Om flaggan GRND_NONBLOCK är inställd blockerar inte getrandom() i dessa fall, utan ger istället omedelbart upphov till BlockingIOError.

Tillagd i version 3.6.

os.GRND_RANDOM

Om denna bit är inställd dras slumpmässiga byte från /dev/random-poolen istället för /dev/urandom-poolen.

Tillagd i version 3.6.