Lorsque plusieurs répertoires doivent être concaténés, comme dans un chemin de recherche exécutable, il existe un caractère de séparation dépendant du système d'exploitation. Pour Windows c'est ';'
, pour Linux c'est ':'
. Existe-t-il un moyen en Python d'obtenir sur quel caractère se diviser?
Dans les discussions sur cette question Comment trouver mon chemin python en utilisant python? , il est suggéré de os.sep
le faire. Cette réponse est fausse, car c'est le séparateur des composants d'un répertoire ou d'un nom de fichier et équivaut à '\\'
ou '/'
.
python
operating-system
environment-variables
Mark Ransom
la source
la source
os.sep
ouos.path.sep
est ce dont vous avez besoin pour les chemins de système de fichiers.os.pathsep
is:
ou;
whileos.path.sep
is\\
or/
- parfois les noms en Python me semblent choquants mal choisis. Cela.
fait une trop grande différence.os.sep
etos.path.sep
, qui sont égaux, ainsi queos.pathsep
etos.path.pathsep
qui sont également égaux. Pourquoi feraient-ils cela?C'est os.pathsep
la source
Rendre un peu plus explicite (pour les débutants en python comme moi)
la source
OK, il y a donc:
os.pathsep
c'est-à-dire;
et qui est un séparateur dans laPATH
variable d'environnement;os.path.sep
c'est-/
à- dire sous Unix / Linux et\
sous Windows, qui est un séparateur entre les composants du chemin.La similitude est source de confusion.
la source
os.path.sep
est la réponse à une question différente .Ceci est un exemple de chemin pour votre répertoire de travail / dossier spécifique -
Sortie pour Linux-
/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png
Sortie pour Windows-
C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png
la source