Python Language
Das os-Modul
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
Einem Symlink folgen (POSIX)
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