web-dev-qa-db-fra.com

lequel dois-je utiliser: os.sep ou os.path.sep?

Ce sont les mêmes, mais lequel dois-je utiliser?

http://docs.python.org/library/os.html :

os.sep

Caractère utilisé par le système d'exploitation pour séparer les composants de chemin d'accès. Il s'agit de '/' pour POSIX et de '\' pour Windows. Notez que le savoir n'est pas suffisant pour pouvoir analyser ou concaténer des chemins d'accès - utilisez os.path.split () et os.path.join () - mais c'est parfois utile. Également disponible via os.path.

52
zhigang

J'utiliserais os.path.sep pour qu'il soit très clair que c'est le séparateur de chemin… Mais la cohérence est plus importante, donc si l'un est déjà utilisé, utilisez-le. Sinon, choisissez-en un et utilisez-le tout le temps.

Edit: Juste pour être sûr de ne pas réinventer la roue, cependant, le module path a déjà join, split, dirname, et basename fonctions… Vous devriez donc rarement avoir besoin d'utiliser path.sep:

>>> os.path.join("foo", "bar", "baz")
'foo/bar/baz'
>>> os.path.split(_)
('foo/bar', 'baz')
69
David Wolever

Je vous recommande d'utiliser os.path.sep pour plus de clarté, car c'est un séparateur de chemin, pas un séparateur de système d'exploitation. Si vous import os.path as path vous pouvez l'appeler path.sep, ce qui est encore mieux.

9
Fred Foo

Si vous utilisez Jython 2.7, je vous suggère d'utiliser os.sep (fonctionne) au lieu de os.path.sep (cassé) car Jython sur Windows a un bug renvoyant un "/" barre oblique au lieu de "\" barre oblique inverse.

9
scottwed