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

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow