J'utilise Pathlib de Python et je veux prendre quelque chose comme
p = Path('/path/to/foo')
Et puis essayez quelques extensions différentes. Je peux faire
for ext in ['.txt', '.md', '.note']
filename = Path(str(p) + ext)
mais cela semble un peu gênant. Y a-t-il une meilleure manière de faire cela?
La méthode with_suffix
renvoie un nouveau chemin avec une extension différente, soit en modifiant une extension existante, soit en en ajoutant une nouvelle. Exemples tirés des documents:
>>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz')
>>> p.with_suffix('.bz2')
PureWindowsPath('c:/Downloads/pathlib.tar.bz2')
>>> p = PureWindowsPath('README')
>>> p.with_suffix('.txt')
PureWindowsPath('README.txt')
Dans votre cas, p.with_suffix(ext)
ferait l'affaire.
Pour les cas où vous devez ajouter un suffixe après tout suffixe existant au lieu de supprimer les suffixes existants, vous pouvez utiliser p.with_suffix(p.suffix+ext)
. C'est un peu maladroit, cependant, et je ne sais pas si je le préférerais à Path(str(p)+ext)
.