Suche…


Einführung

Dieses Modul bietet eine tragbare Möglichkeit, betriebssystemabhängige Funktionen zu verwenden.

Syntax

  • import os

Parameter

Parameter Einzelheiten
Pfad Ein Pfad zu einer Datei. Das os.path.sep kann mit os.path.sep bestimmt werden.
Modus Die gewünschte Erlaubnis in Oktal (zB 0700 )

Erstellen Sie ein Verzeichnis

os.mkdir('newdir')

Wenn Sie die Berechtigungen angeben müssen, können Sie die optionale Verwendung mode Argument:

os.mkdir('newdir', mode=0700)

Aktuelles Verzeichnis abrufen

Verwenden Sie die Funktion os.getcwd() :

print(os.getcwd())

Bestimmen Sie den Namen des Betriebssystems

Das os Modul stellt eine Schnittstelle bereit, um zu bestimmen, auf welchem ​​Betriebssystem der Code aktuell ausgeführt wird.

os.name

Dies kann in Python 3 einen der folgenden Werte zurückgeben:

  • posix
  • nt
  • ce
  • java

Detailliertere Informationen können von sys.platform abgerufen sys.platform

Ein Verzeichnis entfernen

Entfernen Sie das Verzeichnis unter path :

os.rmdir(path)

Sie sollten os.remove() nicht verwenden, um ein Verzeichnis zu entfernen. Diese Funktion ist für Dateien und die Verwendung in Verzeichnissen führt zu einem OSError

Manchmal müssen Sie das Ziel eines Symlinks bestimmen. os.readlink macht das:

print(os.readlink(path_to_symlink))

Ändern Sie die Berechtigungen für eine Datei

os.chmod(path, mode)

Dabei ist mode die gewünschte Berechtigung in Oktal.

Makedirs - rekursive Verzeichniserstellung

Dazu ein lokales Verzeichnis mit folgendem Inhalt:

 └── dir1
     ├── subdir1
     └── subdir2

Wir möchten dasselbe Unterverzeichnis1, Unterverzeichnis2 unter einem neuen Verzeichnis dir2 erstellen, das noch nicht vorhanden ist.

import os

os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")

Ausführen dieser Ergebnisse in

├── dir1
│   ├── subdir1
│   └── subdir2
└── dir2
    ├── subdir1
    └── subdir2

dir2 wird nur erstellt, wenn es zum ersten Mal für die Erstellung von Unterverzeichnis1 benötigt wird.

Wenn wir stattdessen os.mkdir verwendet hätten , hätten wir eine Ausnahme gehabt, weil dir2 noch nicht existiert hätte.

    os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'

os.makedirs mag es nicht, wenn das Zielverzeichnis bereits existiert. Wenn wir es noch einmal ausführen:

OSError: [Errno 17] File exists: './dir2/subdir1'

Dies kann jedoch leicht behoben werden, indem Sie die Ausnahme abfangen und prüfen, ob das Verzeichnis erstellt wurde.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow