Python Language
Le module os
Recherche…
Introduction
Ce module fournit un moyen portable d'utiliser les fonctionnalités dépendantes du système d'exploitation.
Syntaxe
- importer os
Paramètres
Paramètre | Détails |
---|---|
Chemin | Un chemin vers un fichier. Le séparateur de chemin peut être déterminé par os.path.sep . |
Mode | L'autorisation souhaitée, en octal (par exemple, 0700 ) |
Créer un répertoire
os.mkdir('newdir')
Si vous devez spécifier des autorisations, vous pouvez utiliser l'argument de mode
facultatif:
os.mkdir('newdir', mode=0700)
Obtenir le répertoire actuel
Utilisez la fonction os.getcwd()
:
print(os.getcwd())
Déterminer le nom du système d'exploitation
Le module os
fournit une interface pour déterminer le type de système d'exploitation sur lequel le code s'exécute actuellement.
os.name
Cela peut renvoyer l'un des éléments suivants dans Python 3:
-
posix
-
nt
-
ce
-
java
Des informations plus détaillées peuvent être extraites de sys.platform
Supprimer un répertoire
Supprimez le répertoire sur le path
:
os.rmdir(path)
Vous ne devez pas utiliser os.remove()
pour supprimer un répertoire. Cette fonction est OSError
aux fichiers et son utilisation dans les répertoires entraînera une OSError
Suivez un lien symbolique (POSIX)
Parfois, vous devez déterminer la cible d'un lien symbolique. os.readlink
fera:
print(os.readlink(path_to_symlink))
Modifier les autorisations sur un fichier
os.chmod(path, mode)
où mode
est la permission souhaitée, en octal.
makedirs - création récursive d'annuaire
Étant donné un répertoire local avec le contenu suivant:
└── dir1
├── subdir1
└── subdir2
Nous voulons créer le même sous-répertoire, subdir2, sous un nouveau répertoire dir2, qui n'existe pas encore.
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
En cours d'exécution cela se traduit par
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 n'est créé que la première fois qu'il est nécessaire, pour la création de subdir1.
Si nous avions utilisé os.mkdir , nous aurions eu une exception car dir2 n’aurait pas encore existé.
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
os.makedirs ne l'aimera pas si le répertoire cible existe déjà. Si nous le relançons à nouveau:
OSError: [Errno 17] File exists: './dir2/subdir1'
Cependant, cela pourrait facilement être résolu en interceptant l'exception et en vérifiant que le répertoire a bien été créé.
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