126 votes

Python, ajouter le slash de fin à la chaîne de répertoire, os indépendamment

Comment ajouter une barre oblique de fin ( / pour *nix, \ pour win32) à une chaîne de répertoire, si la barre oblique de queue n'est pas déjà là ? Merci !

210voto

Series8217 Points 1735

os.path.join(path, '') ajoutera la barre oblique de fin s'il n'y en a pas déjà une.

Vous pouvez faire os.path.join(path, '', '') o os.path.join(path_with_a_trailing_slash, '') et vous n'obtiendrez toujours qu'une barre oblique de fin.

32voto

Tim Pietzcker Points 146308

Puisque vous voulez connecter un répertoire et un nom de fichier, utilisez

os.path.join(directory, filename)

Si vous voulez vous débarrasser de .\..\..\blah\ les chemins, utilisez

os.path.join(os.path.normpath(directory), filename)

26voto

Marco Mariani Points 6907
os.path.normpath(mypath) + os.sep

15voto

Max Shawabkeh Points 19030

Vous pouvez le faire manuellement en :

path = ...

import os
if not path.endswith(os.path.sep):
    path += os.path.sep

Cependant, il est généralement plus propre d'utiliser os.path.join .

-2voto

Bloeper Points 186

Vous pourriez utiliser quelque chose comme ça :

os.path.normcase(path)
    Normalize the case of a pathname. On Unix and Mac OS X, this returns the path unchanged; on case-insensitive filesystems, it converts the path to lowercase. On Windows, it also converts forward slashes to backward slashes.

Sinon, vous pourriez chercher autre chose sur este page

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