Comment ajouter une barre oblique (/
pour * nix, \
pour win32) à une chaîne de répertoire, si la barre oblique n'est pas déjà présente? Merci!Python, ajouter une barre oblique à la chaîne d'annuaire, OS indépendamment
Répondre
os.path.join(path, '')
ajoutera le slash si ce n'est pas déjà là.
Vous pouvez faire os.path.join(path, '', '')
ou os.path.join(path_with_a_trailing_slash, '')
et vous aurez toujours seulement un slash final.
Vous pouvez le faire manuellement:
path = ...
import os
if not path.endswith(os.path.sep):
path += os.path.sep
Cependant, il est généralement beaucoup plus propre à utiliser os.path.join
.
+1 pour 'os.path.join' –
os.path.normpath(mypath) + os.sep
Merci! clair et concis – dopplesoldner
cela échoue si le chemin d'origine est la racine, '\' – mingxiao
Vous pouvez utiliser quelque chose comme ceci:
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 pouvez chercher quelque chose d'autre sur this la page
Puisque vous souhaitez connecter un répertoire et un nom de fichier, utilisez
os.path.join(directory, filename)
Si vous voulez vous débarrasser de .\..\..\blah\
chemins, utiliser
os.path.join(os.path.normpath(directory), filename)
Que voulez-vous faire avec? –
Vous devez utiliser le module 'os.path' (http://docs.python.org/library/os.path.html) au lieu de manipuler les chaînes directement. Utilisez 'os.path.join' pour concaténer les composants du chemin. – kennytm
@Tim Pietzcker, donc je peux être sûr qu'il y a une barre oblique lorsque je concatte la chaîne du dossier avec un nom de fichier – ohho