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)

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow