165 votes

Comment obtenir le séparateur de variables d'environnement PATH en Python ?

Lorsque plusieurs répertoires doivent être concaténés, comme dans un chemin de recherche d'un exécutable, il existe un caractère séparateur dépendant du système d'exploitation. Pour Windows, il s'agit de ';' pour Linux, c'est ':' . Existe-t-il un moyen en Python d'obtenir le caractère à couper ?

Dans les discussions sur cette question Comment trouver mon chemin d'accès à python en utilisant python ? il est suggéré que os.sep le fera. Cette réponse est fausse, car il s'agit du séparateur des composants d'un répertoire ou d'un nom de fichier et équivaut à '\\' o '/' .

227voto

SilentGhost Points 79627

227 votes

Si, comme moi, vous n'avez pas lu le corps de cette question et que vous vous êtes contenté du titre, vous penserez qu'il s'agit du caractère qui sépare les éléments d'une chemin du système de fichiers (barre oblique sous Linux et MacOSX, barre oblique inversée sous Windows). Ce n'est pas le cas, c'est le caractère qui sépare les éléments d'un shell PATH qui est utilisé pour localiser les commandes exécutables. os.sep o os.path.sep est ce dont vous avez besoin pour les chemins du système de fichiers.

76 votes

os.pathsep es : o ; tandis que os.path.sep es \\ o / - Parfois, les noms en Python me semblent scandaleusement mal choisis. Ce . fait une trop grande différence.

2 votes

@Perry j'ai édité la question. J'espère que mon édition clarifie la confusion (j'ai indiqué que cette question concerne la "variable d'environnement PATH" au lieu d'un "chemin du système de fichiers").

32voto

Dave Costa Points 25282

C'est os.pathsep

14voto

DVV Points 96

OK, donc il y en a :

  • os.pathsep c'est-à-dire ; et qui est un séparateur dans le PATH variable d'environnement ;
  • os.path.sep c'est-à-dire / dans Unix/Linux et \ dans Windows, qui est un séparateur entre les composants du chemin.

Cette similitude est une source de confusion.

13voto

Nerrve Points 1772

Le rendre un peu plus explicite (pour les débutants en python comme moi)

import os
print(os.pathsep)

-2voto

Shivam Bharadwaj Points 353

Il s'agit d'un exemple de chemin d'accès pour votre répertoire de travail/répertoire spécifique -

 import os
 my = os.pathsep+ "testImages" + os.pathsep + "imageHidden.png"
 print(my)

Sortie pour Linux-

:testImages:imageHidden.png

Sortie pour Windows-

;testImages;imageHidden.png

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X