Je ne suis pas en mesure de voir la vue d'ensemble ici, je pense; mais au fond, je n'ai aucune idée de la raison pour laquelle vous utiliseriez os.path.join
au lieu d'une concaténation de chaîne normale?
J'ai principalement utilisé VBScript, donc je ne comprends pas l'intérêt de cette fonction.
Écrivez des manipulations de chemin de fichier une fois et cela fonctionne sur de nombreuses plateformes différentes, gratuitement. Le caractère délimitant est abstrait, ce qui facilite votre travail.
Vous n'avez plus besoin de vous inquiéter si ce chemin de répertoire avait un barre oblique de fin ou non . os.path.join
l'ajoutera si nécessaire.
En utilisant os.path.join
indique clairement aux autres personnes lisant votre code que vous travaillez avec des chemins de fichiers. Les gens peuvent parcourir rapidement le code et découvrir qu'il s'agit intrinsèquement d'un chemin de fichier. Si vous décidez de le construire vous-même, vous empêcherez probablement le lecteur de trouver des problèmes réels avec votre code: "Hmm, quelques concats de chaîne, une substitution. Est-ce un chemin de fichier ou quoi? Gah! Pourquoi n'a-t-il pas utilisé os.path.join
? ":)
Fonctionne sous Windows avec '\' et Unix (y compris Mac OS X) avec '/'.
pour posixpath, voici le code simple
In [22]: os.path.join??
Type: function
String Form:<function join at 0x107c28ed8>
File: /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py
Definition: os.path.join(a, *p)
Source:
def join(a, *p):
"""Join two or more pathname components, inserting '/' as needed.
If any component is an absolute path, all previous path components
will be discarded."""
path = a
for b in p:
if b.startswith('/'):
path = b
Elif path == '' or path.endswith('/'):
path += b
else:
path += '/' + b
return path
n'ont pas de fenêtres mais la même chose devrait être là avec '\'