Come posso aggiungere una barra finale ( /
per * nix, \
per win32) a una stringa di directory, se la barra finale non è già presente? Grazie!
os.path.join
e lascia che la libreria standard trovi il separatore di percorso corretto.
Come posso aggiungere una barra finale ( /
per * nix, \
per win32) a una stringa di directory, se la barra finale non è già presente? Grazie!
os.path.join
e lascia che la libreria standard trovi il separatore di percorso corretto.
Risposte:
os.path.join(path, '')
aggiungerà la barra finale se non è già presente.
Puoi fare os.path.join(path, '', '')
o os.path.join(path_with_a_trailing_slash, '')
e otterrai comunque solo una barra finale.
path
sembra essere un file piuttosto che una directory. È leggermente scomodo.
Dato che vuoi connettere una directory e un nome di file, usa
os.path.join(directory, filename)
Se vuoi sbarazzarti dei .\..\..\blah\
percorsi, usa
os.path.join(os.path.normpath(directory), filename)
Puoi farlo manualmente:
path = ...
import os
if not path.endswith(os.path.sep):
path += os.path.sep
Tuttavia, di solito è molto più pulito da usare os.path.join
.
Potresti usare qualcosa del genere:
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.
Altrimenti potresti cercare qualcos'altro in questa pagina
os.path
modulo ( docs.python.org/library/os.path.html ) invece di manipolare direttamente le stringhe. Utilizzareos.path.join
per concatenare i componenti del percorso.