Le chemin absolu UNIX commence par '/', alors que Windows commence par les lettres 'C:' ou '\' . Est-ce que python a une fonction standard pour vérifier si un chemin est absolu ou relatif?
os.path.isabs
renvoie True
si le chemin est absolu, False
sinon. La documentation indique que cela fonctionne sous Windows (je peux confirmer que cela fonctionne personnellement sous Linux).
os.path.isabs(my_path)
Et si ce que vous voulez vraiment est le chemin absolu, ne cherchez pas à vérifier si c'est le cas, procurez-vous simplement la abspath
:
import os
print os.path.abspath('.')
Utilisez os.path.isabs
.
import os.path
os.path.isabs('/home/user')
True
os.path.isabs('user')
False
En fait, je pense qu'aucune des réponses ci-dessus n'a abordé le vrai problème: les chemins multi-plateformes. Os.path charge la version dépendante du système d’exploitation de la bibliothèque 'path'. la solution consiste donc à charger explicitement la bibliothèque de chemins d'accès appropriée (OS):
import ntpath
import posixpath
ntpath.isabs("Z:/a/b/c../../H/I/J.txt")
True
posixpath.isabs("Z:/a/b/c../../H/I/J.txt")
False
Le module os.path
aura tout ce dont vous avez besoin.
une autre façon si vous n'êtes pas dans le répertoire de travail actuel, un peu sale mais cela fonctionne pour moi.
import re
path = 'my/relative/path'
# path = '..my/relative/path'
# path = './my/relative/path'
pattern = r'([a-zA-Z0-9]|[.])+/'
is_ralative = bool(pattern)