Python Language
De os-module
Zoeken…
Invoering
Deze module biedt een draagbare manier om besturingssysteemafhankelijke functionaliteit te gebruiken.
Syntaxis
- os importeren
parameters
Parameter | Details |
---|---|
Pad | Een pad naar een bestand. Het padscheidingsteken kan worden bepaald door os.path.sep . |
mode | De gewenste toestemming, in octaal (bijv. 0700 ) |
Maak een map aan
os.mkdir('newdir')
Als u machtigingen moet opgeven, kunt u het optionele argument mode
:
os.mkdir('newdir', mode=0700)
Huidige map ophalen
Gebruik de functie os.getcwd()
:
print(os.getcwd())
Bepaal de naam van het besturingssysteem
De os
module biedt een interface om te bepalen op welk type besturingssysteem de code momenteel wordt uitgevoerd.
os.name
Dit kan een van de volgende items in Python 3 retourneren:
-
posix
-
nt
-
ce
-
java
Meer gedetailleerde informatie kan worden opgehaald via sys.platform
Verwijder een map
Verwijder de map op path
:
os.rmdir(path)
Gebruik os.remove()
niet om een map te verwijderen. Die functie is voor bestanden en het gebruik ervan in mappen zal resulteren in een OSError
Volg een symlink (POSIX)
Soms moet u het doel van een symlink bepalen. os.readlink
doet dit:
print(os.readlink(path_to_symlink))
Wijzig machtigingen voor een bestand
os.chmod(path, mode)
waarbij mode
de gewenste toestemming is, in octaal.
makedirs - recursieve directory creatie
Gegeven een lokale map met de volgende inhoud:
└── dir1
├── subdir1
└── subdir2
We willen dezelfde subdir1 maken, subdir2 onder een nieuwe map dir2, die nog niet bestaat.
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
Het uitvoeren van dit resulteert in
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 wordt alleen gemaakt wanneer het voor het eerst nodig is, voor het maken van subdir1.
Als we in plaats daarvan os.mkdir hadden gebruikt, zouden we een uitzondering hebben gehad omdat dir2 nog niet had bestaan.
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
os.makedirs zal het niet leuk vinden als de doelmap al bestaat. Als we het opnieuw uitvoeren:
OSError: [Errno 17] File exists: './dir2/subdir1'
Dit kan echter eenvoudig worden opgelost door de uitzondering op te vangen en te controleren of de map is gemaakt.
try:
os.makedirs("./dir2/subdir1")
except OSError:
if not os.path.isdir("./dir2/subdir1"):
raise
try:
os.makedirs("./dir2/subdir2")
except OSError:
if not os.path.isdir("./dir2/subdir2"):
raise