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 somgetuid()
ochgetpid()
ä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.
- 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:
Använd UTF-8 som filsystemskodning.
sys.getfilesystemencoding()
returnerar'utf-8'
.locale.getpreferredencoding()
returnerar'utf-8'
(argumentet do_setlocale har ingen effekt).sys.stdin
,sys.stdout
ochsys.stderr
använder alla UTF-8 som textkodning, medsurrogateescape
error handler aktiverat försys.stdin
ochsys.stdout
(sys.stderr
fortsätter att användabackslashreplace
som det gör i standardläget för locale-aware)På Unix returnerar
os.device_encoding()
'utf-8'
i stället för enhetens 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()
ochos.fsencode()
använder UTF-8-kodning.open()
,io.open()
ochcodecs.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 motsvarargetenv("HOME")
i C.Denna mappning registreras första gången modulen
os
importeras, vanligtvis under Python-start som en del av bearbetningen avsite.py
. Ändringar i miljön som görs efter denna tidpunkt återspeglas inte ios.environ
, med undantag för ändringar som görs genom att ändraos.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ändenvironb
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 inteos.environ
, så det är bättre att ändraos.environ
.Anteckning
På vissa plattformar, inklusive FreeBSD och macOS, kan inställningen
environ
orsaka minnesläckage. Se systemdokumentationen förputenv()
.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ånos.environ
och när någon av metodernapop()
ellerclear()
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 ärbytes
-objekt som representerar processmiljön.environ
ochenvironb
är synkroniserade (om du ändrarenvironb
uppdaterasenviron
och vice versa).environb
är endast tillgängligt omsupports_bytes_environ
ärTrue
.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
ochos.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 avos.putenv()
elleros.unsetenv()
. Användos.reload_environ()
för att uppdateraos.environ
ochos.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
elleros.environb
, eller anrop avos.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
ellerbytes
skickas in returneras det oförändrat. Annars anropas__fspath__()
och dess värde returneras så länge det är ettstr
- ellerbytes
-objekt. I alla andra fall genererasTypeError
.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.
- 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änderos.environ
, fångas mappningen avgetenv()
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ändos.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änderos.environb
, fångas mappningen avgetenvb()
på samma sätt vid import, och funktionen kanske inte återspeglar framtida miljöförändringar.getenvb()
är endast tillgängligt omsupports_bytes_environ
ärTrue
.Tillgänglighet: Unix.
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ändsenviron
.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, returnerargetgroups()
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 tillsetgroups()
om det finns lämpliga privilegier. Om den byggs med ett distributionsmål som är större än10.5
returnerargetgroups()
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 tillsetgroups()
och dess längd är inte begränsad till 16. Deployment target-värdet,MACOSX_DEPLOYMENT_TARGET
, kan erhållas medsysconfig.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övariablernaLOGNAME
ellerUSERNAME
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
ellerPRIO_USER
, och who tolkas i förhållande till which (en processidentifierare förPRIO_PROCESS
, en processgruppsidentifierare förPRIO_PGRP
och ett användar-ID förPRIO_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()
ochsetpriority()
.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()
ochsetpriority()
.Tillgänglighet: macOS
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()
ellerfork()
ochexecv()
.Tilldelningar till objekt i
os.environ
översätts automatiskt till motsvarande anrop tillputenv()
; anrop tillputenv()
uppdaterar dock inteos.environ
, så det är faktiskt att föredra att tilldela till objekt ios.environ
. Detta gäller ävengetenv()
ochgetenvb()
, som använderos.environ
respektiveos.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örputenv()
.Utlöser en auditing event
os.putenv
med argumentenkey
,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 återassocierarsetns()
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()
ellersetpgrp(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
ellerPRIO_USER
, och who tolkas i förhållande till which (en processidentifierare förPRIO_PROCESS
, en processgruppsidentifierare förPRIO_PGRP
och ett användar-ID förPRIO_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()
returnerarNULL
när det ges ett okänt felnummer, uppstårValueError
.
- 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å operativsystemetnodename
- namn på maskin i nätverk (implementationsdefinierat)release
- version av operativsystemetversion
- version av operativsystemetmachine
- 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
ochmachine
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 ärsocket.gethostname()
eller till och medsocket.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.Tillgänglighet: Unix.
Ä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()
ellerfork()
ochexecv()
.Radering av objekt i
os.environ
översätts automatiskt till ett motsvarande anrop tillunsetenv()
; anrop tillunsetenv()
uppdaterar dock inteos.environ
, så det är faktiskt att föredra att radera objekt ios.environ
.Se även funktionen
os.reload_environ()
.Utlöser en auditing event
os.unsetenv
med argumentetkey
.Ändrad i version 3.9: Funktionen är nu alltid tillgänglig och finns även i Windows.
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()
.
Skapande av filobjekt¶
Dessa funktioner skapar nya filobjekt. (Se även open()
för att öppna filbeskrivare)
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.
- 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
mederrno
satt tillerrno.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 medos.chmod(fd, mode)
.Utlöser en auditing-händelse
os.chmod
med argumentenpath
,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 medos.chown(fd, uid, gid)
.Utlöser en auditing-händelse
os.chown
med argumentenpath
,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.
Tillgänglighet: Unix.
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 ipathconf_names
, genereras ettOSError
mederrno.EINVAL
som felnummer.Från och med Python 3.3 är detta likvärdigt med
os.pathconf(fd, name)
.Tillgänglighet: Unix.
- 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 medos.statvfs(fd)
.Tillgänglighet: Unix.
- 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 sedanos.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 argumentenfd
,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 flagganO_NONBLOCK`
är inställd,True
om flaggan är avmarkerad.Se även
set_blocking()
ochsocket.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, annarsFalse
.
- 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
ellerF_TEST
. len anger den del av filen som ska låsas.Utlöser en auditing event
os.lockf
med argumentenfd
,cmd
,len
.Tillgänglighet: Unix.
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.Tillgänglighet: Unix.
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
eller0
– ställer in pos relativt början av filenSEEK_CUR
eller1
– ställa in pos relativt den aktuella filpositionenSEEK_END
eller2
– ställer in pos relativt slutet av filenSEEK_HOLE
– sätter pos till nästa dataplats, relativt posSEEK_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
ochSEEK_DATA
.
- os.SEEK_SET¶
- os.SEEK_CUR¶
- os.SEEK_END¶
Parametrar till funktionen
lseek()
och metodenseek()
på 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 ochseek()
-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
ochO_WRONLY
) definieras i modulenos
. I Windows behövs i synnerhet tilläggetO_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 argumentenpath
,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 metodernaread()
ochwrite()
(och många fler). För att paketera en filbeskrivning i ett filobjekt, användfdopen()
.Ä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_SYMLINK¶
- 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
ochO_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.
- 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 modulenpty
.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.
Tillgänglighet: Unix.
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
ellerPOSIX_FADV_DONTNEED
.Tillgänglighet: Unix.
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.Tillgänglighet: Unix.
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.
Tillgänglighet: Unix.
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örposix_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()
ochos.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 tillerrno.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-standardbiblioteksfunktionenptsname()
, 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.
Tillgänglighet: Unix.
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()
ochos.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öros.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()
ellerpipe()
. För att läsa ett ”filobjekt” som returneras av den inbyggda funktionenopen()
eller avpopen()
ellerfdopen()
, ellersys.stdin
, använd dess metoderread()
ellerreadline()
.Ä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()
elleros.pipe()
. För att läsa ett ”filobjekt” som returneras av den inbyggda funktionenopen()
, ellersys.stdin
, använd dess medlemsfunktioner, till exempelio.BufferedIOBase.readinto()
,io.BufferedIOBase.read()
, ellerio.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()
, sesocket.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 ärFalse
, rensa flaggan annars.Se även
get_blocking()
ochsocket.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 varaNone
. Filerna som pekas ut av src och dst måste finnas i samma filsystem, annars uppstår ettOSError
mederrno
satt tillerrno.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.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.Tillgänglighet: Unix.
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å.
Tillgänglighet: Unix.
- 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()
ellerpipe()
. För att skriva ett ”filobjekt” som returneras av den inbyggda funktionenopen()
eller avpopen()
ellerfdopen()
, ellersys.stdout
ellersys.stderr
, använd dess metodwrite()
.Ä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.Tillgänglighet: Unix.
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 typenterminal_size
.Det valfria argumentet
fd
(standardSTDOUT_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.
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 prefixetf
(t.ex. anropafchdir
istället förchdir
))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 ettNotImplementedError
.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 suffixetat
och eventuellt med prefixetf
(t.ex. anropafaccessat
istället föraccess
).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 ettNotImplementedError
.
följer inte symboliska länkar: Om follow_symlinks är
False
, och det sista elementet i sökvägen som ska bearbetas är en symbolisk länk, kommer funktionen att bearbeta själva den symboliska länken i stället för den fil som länken pekar på. (För POSIX-system kommer Python att anropal...
-varianten av funktionen)Du kan kontrollera om follow_symlinks stöds för en viss funktion på din plattform med hjälp av
os.supports_follow_symlinks
. Om den inte är tillgänglig kommer den att ge upphov till ettNotImplementedError
.
- 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 avR_OK
,W_OK
ochX_OK
för att testa behörigheter. ReturnerarTrue
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
kommeraccess()
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 medos.supports_effective_ids
. Om den inte är tillgänglig kommer den att ge upphov till ettNotImplementedError
.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 medopen()
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 somFileNotFoundError
,PermissionError
ochNotADirectoryError
.Utlöser en auditing event
os.chdir
med argumentetpath
.Ä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 argumentenpath
,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 konstanternastat.S_IWRITE
ochstat.S_IREAD
eller ett motsvarande heltalsvärde). Alla andra bitar ignoreras. Standardvärdet för follow_symlinks ärFalse
i Windows.Funktionen är begränsad på WASI, se WebAssembly-plattformar för mer information.
Utlöser en auditing-händelse
os.chmod
med argumentenpath
,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 argumentenpath
,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 argumentetpath
.Tillgänglighet: Unix.
- 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 medos.chflags(path, flags, follow_symlinks=False)
.Utlöser en auditing event
os.chflags
med argumentenpath
,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 medos.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 argumentenpath
,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 argumentenpath
,uid
,gid
,dir_fd
.Tillgänglighet: Unix.
Ändrad i version 3.6: Accepterar en path-like object.
- os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)¶
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 argumentensrc
,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änssnittetPathLike
), kommer filnamnen som returneras också att vara av typenbytes
; under alla andra omständigheter kommer de att vara av typenstr
.Denna funktion kan också stödja specificera en filbeskrivning; filbeskrivningen måste referera till en katalog.
Utlöser en auditing event
os.listdir
med argumentetpath
.Anteckning
För att koda
str
filnamn tillbytes
, användfsencode()
.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 argumentetvolume
.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. Liknarstat()
, men följer inte symboliska länkar. Returnerar ettstat_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, genererasFileNotFoundError
.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 mode på
0o700
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 argumentenpath
,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 anroparmakedirs()
. Filbehörighetsbitarna för befintliga överordnade kataloger ändras inte.Om exist_ok är
False
(standard), uppstår ettFileExistsError
om målkatalogen redan existerar.Anteckning
makedirs()
blir förvirrad om sökvägselementen som ska skapas innehållerpardir
(t.ex. ”..” på UNIX-system).Denna funktion hanterar UNC-sökvägar korrekt.
Utlöser en auditing-händelse
os.mkdir
med argumentenpath
,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, skullemakedirs()
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 attmkfifo()
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
ochstat.S_IFIFIFO
(dessa konstanter finns istat
). Förstat.S_IFCHR
ochstat.S_IFBLK
definierar device den nyskapade enhetens specialfil (troligen med hjälp avos.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
ellerst_rdev
frånstat
).
- os.minor(device, /)¶
Extrahera enhetens mindre nummer från ett obearbetat enhetsnummer (vanligtvis fältet
st_dev
ellerst_rdev
frånstat
).
- 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 ipathconf_names
, genereras ettOSError
mederrno.EINVAL
som felnummer.Den här funktionen kan stödja angivelse av en filbeskrivare.
Tillgänglighet: Unix.
Ändrad i version 3.6: Accepterar en path-like object.
- os.pathconf_names¶
Ordbok som mappar namn som accepteras av
pathconf()
ochfpathconf()
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.Tillgänglighet: Unix.
- os.readlink(path, *, dir_fd=None)¶
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ändrmdir()
för att ta bort kataloger. Om filen inte finns genereras ettFileNotFoundError
.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 argumentenpath
,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ökerremovedirs()
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 kommeros.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öserOSError
om bladkatalogen inte kunde tas bort på ett framgångsrikt sätt.Utlöser en auditing-händelse
os.remove
med argumentenpath
,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ändshutil.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 ettNotADirectoryError
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 ettOSError
. 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 argumentensrc
,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 medremovedirs()
.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 argumentensrc
,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 argumentensrc
,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 ettOSError
. För att ta bort hela katalogträd kanshutil.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 argumentenpath
,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örlistdir()
kan avsevärt öka prestandan för kod som också behöver information om filtyp eller filattribut, eftersomos.DirEntry
-objekt exponerar denna information om operativsystemet tillhandahåller den när en katalog skannas. Allaos.DirEntry
-metoder kan utföra ett systemanrop, menis_dir()
ochis_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 genomPathLike
-gränssnittet), kommer typen av attributenname
ochpath
för varjeos.DirEntry
att varabytes
; under alla andra omständigheter kommer de att vara av typenstr
.Denna funktion kan också stödja specificera en filbeskrivning; filbeskrivningen måste referera till en katalog.
Utlöser en auditing event
os.scandir
med argumentetpath
.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'.'
. Anropetentry.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 enscandir()
iterator varken är uttömd eller explicit stängd kommer enResourceWarning
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 ettstat()
ellerlstat()
systemanrop görs, kommer objektetos.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 anropadescandir()
, anropaos.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 tillOSError
. Om du behöver mycket finkornig kontroll över fel kan du fångaOSError
när du anropar en av metoderna ios.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 varabytes
om argumentetscandir()
path är av typenbytes
ochstr
annars. Användfsdecode()
för att avkoda bytefilnamn.
- path¶
Postens fullständiga sökvägsnamn: motsvarar
os.path.join(scandir_path, entry.name)
där scandir_path ärscandir()
path-argumentet. Sökvägen är bara absolut om argumentetscandir()
path var absolut. Omscandir()
path-argumentet var en file descriptor, är attributetpath
detsamma som attributetname
.Attributet
path
kommer att varabytes
om argumentetscandir()
path är av typenbytes
ochstr
annars. Användfsdecode()
för att avkoda bytefilnamn.
- inode()¶
Returnerar inodnumret för posten.
Resultatet cachelagras på objektet
os.DirEntry
. Användos.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; returnerarFalse
om posten är eller pekar på någon annan typ av fil, eller om den inte längre existerar.Om follow_symlinks är
False
, returnerasTrue
endast om denna post är en katalog (utan att följa symlinks); returnerasFalse
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_symlinksTrue
ochFalse
. Anropaos.stat()
tillsammans medstat.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 ärFalse
.Denna metod kan ge upphov till
OSError
, t.ex.PermissionError
, menFileNotFoundError
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; returnerarFalse
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
, returnerasTrue
endast om denna post är en fil (utan att följa symlinks); returnerasFalse
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 enligtis_dir()
.
- is_symlink()¶
Returnerar
True
om denna post är en symbolisk länk (även om den är bruten); returnerarFalse
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
. Anropaos.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
, menFileNotFoundError
fångas upp och ges inte upphov till.
- is_junction()¶
Returnerar
True
om denna post är en korsning (även om den är bruten); returnerarFalse
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
. Anropaos.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 argumentetfollow_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
ochst_nlink
istat_result
alltid nollställda. Anropaos.stat()
för att få dessa attribut.Resultatet cachelagras på objektet
os.DirEntry
, med en separat cache för follow_symlinksTrue
ochFalse
. Anropaos.stat()
för att hämta aktuell information.
Observera att det finns en fin korrespondens mellan flera attribut och metoder i
os.DirEntry
och ipathlib.Path
. I synnerhet har attributetname
samma betydelse, liksom metodernais_dir()
,is_file()
,is_symlink()
,is_junction()
ochstat()
.Tillagd i version 3.5.
Ändrad i version 3.6: Lagt till stöd för gränssnittet
PathLike
. Lagt till stöd förbytes
-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 somst_birthtime
, och i framtiden kanst_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 genomPathLike
-gränssnittet – eller som en öppen filbeskrivare. Returnerar ettstat_result
-objekt.Denna funktion följer normalt symlinks; för att stata en symlink lägg till argumentet
follow_symlinks=False
, eller användlstat()
.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 funktionenos.path.realpath()
för att lösa upp sökvägsnamnet så långt som möjligt och anropalstat()
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
Ä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 omfollow_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 avos.stat()
,os.fstat()
ochos.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å.
- st_nlink¶
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ändst_birthtime
för tiden då filen skapades. I framtiden kommerst_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ändst_birthtime_ns
för tiden då filen skapades. I framtiden kommerst_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
ochst_birthtime
beror på operativsystemet och filsystemet. På Windows-system med filsystemet FAT32 har t.ex.st_mtime
upplösning på 2 sekunder ochst_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
ochst_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 lagrast_atime
,st_mtime
,st_ctime
ochst_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ändast_atime_ns
,st_mtime_ns
,st_ctime_ns
ochst_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 iBY_HANDLE_FILE_INFORMATION
-strukturen som returneras avGetFileInformationByHandle`()
. Se konstanternaFILE_ATTRIBUTE_* <stat.FILE_ATTRIBUTE_ARCHIVE>
i modulenstat
.Tillagd i version 3.5.
- st_reparse_tag¶
När
st_file_attributes
har inställningenFILE_ATTRIBUTE_REPARSE_POINT
, innehåller detta fält taggen som identifierar typen av reparse-punkt. Se konstanternaIO_REPARSE_TAG_*
i modulenstat
.
Standardmodulen
stat
definierar funktioner och konstanter som är användbara för att extrahera information från enstat
-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 istat
-strukturen, i ordningenst_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 tillstat_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 somS_IFCHR
,S_IFIFIFO
ellerS_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ändst_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 somst_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 istatvfs
-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: omST_RDONLY
anges monteras filsystemet skrivskyddat, och omST_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.
Tillgänglighet: Unix.
Ändrad i version 3.2: Konstanterna
ST_RDONLY
ochST_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
, ochST_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 ios
-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 angeNone
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
in
påupports_dir_fd
. Som ett exempel utvärderas detta uttryck tillTrue
omos.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 omos.access()
tillåter att man angerTrue
för parametern effective_ids på den lokala plattformen. (Att angeFalse
för effective_ids stöds alltid på alla plattformar) Om den lokala plattformen stöder det, kommer samlingen att innehållaos.access()
; annars kommer den att vara tom.Detta uttryck utvärderas till
True
omos.access()
stödereffective_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 ios
-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
in
påsupports_fd
. Som ett exempel utvärderas detta uttryck tillTrue
omos.chdir()
accepterar öppna filbeskrivare för path på din lokala plattform:os.chdir i os.supports_fd
Tillagd i version 3.3.
- os.supports_follow_symlinks¶
Ett
set
-objekt som anger vilka funktioner ios
-modulen som accepterarFalse
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 angeTrue
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 operatornin
påsupports_follow_symlinks
. Som ett exempel utvärderas detta uttryck tillTrue
om du kan angefollow_symlinks=False
när du anroparos.stat()
på den lokala plattformen:os.stat i os.supports_follow_symlinks
Tillagd i version 3.3.
- os.symlink(src, dst, target_is_directory=False, *, dir_fd=None)¶
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 argumentensrc
,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.
Tillgänglighet: Unix.
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 argumentenpath
,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.
- os.unlink(path, *, dir_fd=None)¶
Ta bort (delete) filen path. Denna funktion är semantiskt identisk med
remove()
; namnetunlink
är dess traditionella Unix-namn. Se dokumentationen förremove()
för ytterligare information.Utlöser en auditing-händelse
os.remove
med argumentenpath
,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 angens=(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; sestat()
. Det bästa sättet att bevara exakta tider är att använda fälten st_atime_ns och st_mtime_ns från resultatobjektetos.stat()
med parametern ns tillutime()
.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 argumentenpath
,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öros.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 ärFalse
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 avdel
eller slice assignment), ochwalk()
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 informerawalk()
om kataloger som den som anropar skapar eller byter namn på innan den återupptarwalk()
igen. Att ändra dirnames när topdown ärFalse
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, enOSError
-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 attributetfilename
för undantagsobjektet.Som standard kommer
walk()
inte att gå ner i symboliska länkar som leder till kataloger. Sätt followlinks tillTrue
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 argumententop
,topdown
,onerror
,followlinks
.Ändrad i version 3.5: Den här funktionen anropar nu
os.scandir()
istället föros.listdir()
, vilket gör den snabbare genom att minska antalet anrop tillos.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öderdir_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_symlinksFalse
.Anteckning
Eftersom
fwalk()
ger filbeskrivningar är dessa endast giltiga till nästa iterationssteg, så du bör duplicera dem (t.ex. meddup()
) 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 argumententop
,topdown
,onerror
,follow_symlinks
,dir_fd
.Tillgänglighet: Unix.
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 medmemfd:
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()
ochwrite()
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
, ochEFD_SEMAPHORE
.Om
EFD_SEMAPHORE
anges och eventräknaren inte är noll, returnerareventfd_read()
1 och minskar räknaren med ett.Om
EFD_SEMAPHORE
inte specificeras och händelseräknaren inte är noll, returnerareventfd_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, blockeraseventfd_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 eneventfd()
.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 eneventfd()
.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 filbeskrivareneventfd()
.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 returnerarread()
antalet utgångar med värdens endianness, som kan konverteras till enint
genomint.from_bytes(x, byteorder=sys.byteorder)
.select()
ochpoll()
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
:time.CLOCK_BOOTTIME
(Sedan Linux 3.15 för timerfd_create)
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, seTFD_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 somtime.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 blockerarread()
tills timern går ut. Om det är satt som en flagga blockerar interead()
, men om det inte har skett någon expiration sedan det senaste anropet till read, gerread()
upphov tillOSError
mederrno
satt tillerrno.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 ettOSError
undantag mederrno
satt tillerrno.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 itimerfd_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ösesOSError
mederrno
satt tillerrno.EINVAL
Om flaggan
TFD_TIMER_CANCEL_ON_SET
är inställd tillsammans medTFD_TIMER_ABSTIME
och klockan för denna timer ärtime.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.Se även
timerfd_create(2), timerfd_settime(2), settimeofday(2), clock_settime(2) och date(1).
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 somtimerfd_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 flagganTFD_TIMER_ABSTIME
är inställd.interval
anger timerns intervall. Om noll, kommer timern bara att starta en gång, efter attnext_expiration
sekunder har gått.Se även
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 statusflagganO_NONBLOCK
för den nya timer-filbeskrivaren. OmTFD_NONBLOCK
inte sätts som en flagga, blockerasread()
.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()
, OmTFD_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()
ochtimerfd_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()
ochtimerfd_settime_ns()
tillsammans medTFD_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 argumentenpath
,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
kommerlistxattr()
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 argumentetpath
.Ä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 argumentenpath
,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 attribute på path 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 varaXATTR_REPLACE
ellerXATTR_CREATE
. OmXATTR_REPLACE
anges och attributet inte finns, kommerENODATA
att uppstå. OmXATTR_CREATE
anges och attributet redan existerar, kommer attributet inte att skapas ochEEXISTS
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 argumentenpath
,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örSIGABRT
medsignal.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 avctypes
.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 argumentetpath
.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 somAddDllDirectory
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()
elleros.fsync()
innan du anropar enexec*
-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 tillexecl*()
-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()
ochexecvpe()
) använder miljövariabelnPATH
för att hitta programmet fil. När miljön ersätts (med någon avexec*e
-varianterna, som beskrivs i nästa stycke), används den nya miljön som källa för variabelnPATH
. De andra varianterna,execl()
,execle()
,execv()
ochexecve()
, använder inte variabelnPATH
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()
ochexecvpe()
(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ö); funktionernaexecl()
,execlp()
,execv()
ochexecvp()
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 avos.supports_fd
. Om den inte är tillgänglig kommer användningen av den att ge upphov till ettNotImplementedError
.Utlöser en auditing-händelse
os.exec
med argumentenpath
,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 enfork()
.
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årOSError
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 issl
-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 enDeprecationWarning
.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
ochfree
).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 är0
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 modulenpty
. Om ett fel inträffar genererasOSError
.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
ochsignal.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 argumentenpid
,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 argumentenpgid
,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 31Tillagd 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 funktionenopen()
. Det returnerade filobjektet läser eller skriver textsträngar istället för bytes.Metoden
close
returnerarNone`
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 avclose
-metoden (exitstatus) till en exitkod om den inte ärNone
. I Windows är resultatet avclose
-metoden direkt utgångskoden (ellerNone
).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 runtsubprocess.Popen
. Användsubprocess.Popen
ellersubprocess.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örposix_spawn()
.Argumenten path, args och env, som endast är positionella, liknar
execve()
. env får varaNone
, 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()
ochexec()
. 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()
, ochposix_spawn_file_actions_addclosefrom_np()
API-anrop som används för att förbereda för självaposix_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 ärFalse
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-biblioteketsPOSIX_SPAWN_RESETIDS
-flagga.Om argumentet setsid är
True
kommer det att skapa ett nytt sessions-ID förposix_spawn
. setsid kräverPOSIX_SPAWN_SETSID
ellerPOSIX_SPAWN_SETSID_NP
flagga. Annars kommerNotImplementedError
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 avNone
i stället för schemaläggningspolicyn anger att den inte tillhandahålls. Detta argument är en kombination av C-biblioteketsPOSIX_SPAWN_SETSCHEDPARAM
ochPOSIX_SPAWN_SETSCHEDULER
flaggor.Utlöser en auditing event
os.posix_spawn
med argumentenpath
,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ärposix_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övariabelnPATH
(på samma sätt som förexecvp(3)
).Utlöser en auditing event
os.posix_spawn
med argumentenpath
,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 anroparPyOS_BeforeFork()
,PyOS_AfterFork_Parent()
ochPyOS_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 ärP_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 funktionenwaitpid()
.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 tillspawnl*()
-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()
ochspawnvpe()
) använder miljövariabelnPATH
för att hitta programmet fil. När miljön ersätts (med någon avspawn*e
-varianterna, som diskuteras i nästa stycke), används den nya miljön som källa för variabelnPATH
. De andra varianterna,spawnl()
,spawnle()
,spawnv()
ochspawnve()
, kommer inte att använda variabelnPATH
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()
ochspawnvpe()
(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ö); funktionernaspawnl()
,spawnlp()
,spawnv()
ochspawnvp()
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()
ochspawnvpe()
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 argumentenmode
,path
,args
,env
.Tillgänglighet: Unix, Windows, not WASI, not Android, not iOS.
spawnlp()
,spawnlpe()
,spawnvp()
ochspawnvpe()
är inte tillgängliga i Windows.spawnle()
ochspawnve()
är inte tråd-säkra i Windows; vi rekommenderar att du använder modulensubprocess
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 funktionernaspawn*
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 funktionernaspawn*
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
liknarP_NOWAIT
, men den nya processen kopplas loss från den anropande processens konsol. OmP_OVERLAY
används kommer den aktuella processen att ersättas; funktionenspawn*
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ändpathlib
eller funktionenos.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 kommerNotImplementedError
att anges.Utlöser en auditing event
os.startfile
med argumentenpath
,operation
.Utlöser en auditing event
os.startfile/2
med argumentenpath
,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 isys.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 isubprocess
-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 argumentetcommand
.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 tidsystem
- systemtidchildren_user
- användartid för alla underordnade processerchildren_system
- systemtid för alla underordnade processerelapsed
- 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
ochelapsed
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
ochsystem
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
ellerWCONTINUED
krävs;WNOHANG
ochWNOWAIT
ä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
(alltidSIGCHLD
)si_status
(utgångsstatus eller signalnummer, beroende påsi_code
)si_code
(seCLD_EXITED
för möjliga värden)
Om
WNOHANG
anges och det inte finns några matchande barn i det begärda tillståndet, returnerasNone
. 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 vara0
för normal drift.Om pid är större än
0
, begärwaitpid()
statusinformation för den specifika processen. Om pid är0
, 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 ärWUNTRACED
ochWCONTINUED
.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. Funktionernaspawn*
som anropas medP_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. Seresource.getrusage()
för detaljer om information om resursanvändning. Argumentet options är detsamma som det som anges iwaitpid()
ochwait4()
.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. Seresource.getrusage()
för detaljer om information om resursanvändning. Argumenten tillwait4()
är desamma som de som anges tillwaitpid()
.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 medpidfd_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()
ochwaitd()
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()
ochwait4()
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()
ochwaitd()
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 senarewait*()
-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 avwaitid()
.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
ochCLD_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 (returnWEXITSTATUS(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 medWUNTRACED
som alternativ, måste anroparen först kontrollera omWIFSTOPPED(status)
är sant. Denna funktion får inte anropas omWIFSTOPPED(status)
är sant.Se även
WIFEXITED()
,WEXITSTATUS()
,WIFSIGNALED()
,WTERMSIG()
,WIFSTOPPED()
,WSTOPSIG()
funktioner.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 returnerasFalse
.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 avSIGCONT
(om processen har fortsatt från ett jobbkontrollstopp), annars returnerasFalse
.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 returnerasFalse
.WIFSTOPPED()
returnerar endastTrue
omwaitpid()
-anropet gjordes medWUNTRACED
-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 returnerasFalse
.Tillgänglighet: Unix, not WASI, not Android, not iOS.
- os.WIFEXITED(status)¶
Returnerar
True
om processen avslutades normalt, det vill säga genom att anropaexit()
eller_exit()
, eller genom att återvända frånmain()
; annars returnerasFalse
.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()
ochsched_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 iconfstr_names
, genereras ettOSError
mederrno.EINVAL
som felnummer.Tillgänglighet: Unix.
- 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.Tillgänglighet: Unix.
- 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 omPYTHON_CPU_COUNT
anges, returnerarcpu_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.Tillgänglighet: Unix.
- 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 äncpu_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 omPYTHON_CPU_COUNT
anges, returnerarprocess_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örconfstr()
gäller även här; ordlistan som ger information om de kända namnen finns isysconf_names
.Tillgänglighet: Unix.
- 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.Tillgänglighet: Unix.
Ä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 viaos.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 viaos.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ändos.path.split()
ochos.path.join()
— men det är ibland användbart. Finns även tillgängligt viaos.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ärsep
är en backslash. Finns även tillgängligt viaos.path
.
- os.extsep¶
Det tecken som skiljer basfilnamnet från tillägget, t.ex.
'.'
ios.py
. Finns även tillgängligt viaos.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 viaos.path
.
- os.defpath¶
Den standardsökväg som används av
exec*p*
ochspawn*p*
om miljön inte har en'PATH'
-nyckel. Finns även tillgänglig viaos.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 viaos.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()
ochgetdlopenflags()
. 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
ochGRND_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 funktionengetrandom()
användas för att hämta slumpmässiga byte i icke-blockerande läge (med flagganGRND_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 undantagetNotImplementedError
.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, serandom.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-funktionengetentropy()
. 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örCryptGenRandom()
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 integetrandom()
i dessa fall, utan ger istället omedelbart upphov tillBlockingIOError
.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.