Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Module « os » Python 3.11.3

Fonction fchdir - module os

Signature de la fonction fchdir

 def fchdir(dir_fd: int) -> None

Description

Cette fonction permet de changer le répertoire courant de travail. Contrairement à la fonction os.chdir, qui accepte une chaîne de caractères pour spécifier le nouveau chemin, la fonction fchdir accepte un descripteur de dossier.

fd = os.open(folder_path, os.O_RDONLY)
fchdir(fd)
le notion de descripteur de fichier ou de dossier n'est disponible que sur les systèmes d'exploitations dérivés de Unix/Linux. Sur les autres systèmes et notamment Windows, la fonction n'est pas existante : veuillez préférer l'utilisation de la fonction os.chdir.

help(os.fchdir)

Change to the directory of the given file descriptor.

fd must be opened on a directory, not a file.
Equivalent to os.chdir(fd).

Paramètre

ParamètreDescription
 dir_fd : int 
Le descripteur de dossier associé au nouveau répertoire de travail.

Valeur de retour

Cette méthode ne renvoie aucune valeur.

Exception

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
import os

while True:
    path = input("Nouveau chemin: ")
    if path == "exit":
        break
    try:
        fd = os.open(path, os.O_RDONLY)
        os.fchdir(fd)
        print("Current working directory :", os.getcwd())
    except FileNotFoundError:
        print(path, "n'existe pas !")
    except NotADirectoryError:
        print(path, "existe, mais ce n'est pas un dossier !")
    except PermissionError:
        print("T'es qui pour vouloir aller ici ???")
    
print("Bye bye")
Exemple d'utilisation de la fonction os.fchdir.

Et voici les résultats produits par cet exemple.

$> python3 sample.py
Nouveau chemin: essai.c
essai.c existe, mais ce n'est pas un dossier !
Nouveau chemin: TrucDeFou
TrucDeFou n'existe pas !
Nouveau chemin: /root
T'es qui pour vouloir aller ici ???
Nouveau chemin: /home/dominique
Current working directory : /home/dominique
Nouveau chemin: exit
Bye bye
$> 

Voir aussi