Dans cet article, nous verrons comment obtenir et modifier le répertoire de travail en Python. Tout en travaillant avec la gestion des fichiers vous avez peut-être remarqué que les fichiers sont référencés uniquement par leur nom, par ex. 'GFG.txt' et si le fichier ne se trouve pas dans le répertoire du script, Python génère une erreur. La notion de Répertoire de travail actuel (CWD) devient ici important. Considérez le CWD comme le dossier dans lequel Python fonctionne. Chaque fois que les fichiers sont appelés uniquement par leur nom, Python suppose qu'ils démarrent dans le CWD, ce qui signifie qu'une référence par nom uniquement ne réussira que si le fichier se trouve dans le CWD de Python.
Note: Le dossier dans lequel le script Python est exécuté est appelé répertoire actuel. Ce n'est peut-être pas le chemin où se trouve le script Python.
Qu'est-ce que le module du système d'exploitation Python ?
Python fournit un module système d'exploitation pour interagir avec le système d'exploitation. Ce module relève du module utilitaire standard de Python. Toutes les fonctions du module os augmentent OSErreur dans le cas de noms et chemins de fichiers invalides ou inaccessibles, ou d'autres arguments qui ont le type correct mais ne sont pas acceptés par le système d'exploitation.
Python Rechercher le répertoire actuel
Obtenez un répertoire du script Python actuel à l'aide de sys.argv[0]
Dans cet exemple, nous avons utilisé sys.argv[0] pour récupérer le chemin du fichier script et os.path.dirname() extrait le répertoire courant du chemin.
Python3
import> os> import> sys> script_directory>=> os.path.dirname(os.path.abspath(sys.argv[>0>]))> print>(script_directory)> |
>
>
Sortir :

Obtenez un répertoire du script Python actuel
Obtenez le répertoire du script Python actuel à l'aide du module Inspect
Dans cet exemple, nous avons utilisé inspecter.getfile(inspect.currentframe()) qui renvoie le chemin du fichier de script actuel, et os.path.dirname() extrait le répertoire courant du chemin.
Python3
import> inspect> import> os> script_directory>=> os.path.dirname(os.path.abspath(> >inspect.getfile(inspect.currentframe())))> > print>(script_directory)> |
>
>
Sortir :
tuples Java

Obtenir le répertoire du script Python actuel
Obtenez le répertoire de travail actuel en utilisant os.getcwd()
Dans cet exemple, nous avons utilisé os.getcwd() pour obtenir le répertoire actuel du script Python.
Python3
import> os> > print>(>'File location using os.getcwd():'>, os.getcwd())> |
>
>
Sortir :
File location using os.getcwd(): /home/tuhingfg/Documents/Scripts>
Note: En utilisant os.getcwd() ne fonctionne pas comme prévu lors de l'exécution du code Python à partir d'un répertoire différent du script Python.
Résultat inattendu lors de l'exécution d'un script Python à partir d'un répertoire autre que le script utilisant os.getcwd()
Le script Python est placé à l'intérieur /home/tuhingfg/Documents/Scripts . Lorsque nous exécutons le script depuis le même dossier, il indique l'emplacement correct du script. Mais lorsque nous changeons notre répertoire vers un autre endroit, l'emplacement de ce répertoire est affiché. Ceci est dû au fait os.getcwd() considère le répertoire à partir duquel nous exécutons le script. Sur cette base, le résultat de os.getcwd() varie également.
Python3
import> os> > print>(>'File location using os.getcwd():'>, os.getcwd())> |
>
>
Sortir:

Obtenez l'emplacement du script en utilisant os.getcwd()
Obtenez l'emplacement du script Python à l'aide de la méthode os.path.realpath()
os.path.realpath() peut être utilisé pour obtenir le chemin du script Python actuel. En fait, la méthode os.path.realpath() en Python est utilisée pour obtenir le chemin canonique du nom de fichier spécifié en éliminant tous les liens symboliques rencontrés dans le chemin. Une variable spéciale __déposer__ est transmis au chemin réel() méthode pour obtenir le chemin du script Python.
Dans cet exemple, le os.getcwd() et __déposer__ donnent deux résultats différents. Puisque nous exécutons le script à partir d'un dossier différent de celui du script, os.getcwd() la sortie a changé en fonction du dossier d'exécution du script. Mais __déposer__ génère le résultat constant quel que soit le répertoire de travail actuel.
Python3
debout
import> os> > print>(>'File location using os.getcwd():'>,> >os.getcwd())> > print>(f>'File location using __file__ variable:'>+> >'{os.path.realpath(os.path.dirname(__file__))}'>)> |
>
>
Sortir:

Obtenir un répertoire avec Python
Remarque : __file__ est le chemin du fichier à partir duquel le module a été chargé s'il a été chargé à partir d'un fichier.