Comment obtenir le nom de fichier sans l'extension à partir d'un chemin en Python ?
Obtenir le nom du fichier sans l'extension :
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
Imprime :
/path/to/some/file
Note importante: Si le nom du fichier comporte plusieurs points, seule l'extension après le dernier est supprimée. Par exemple :
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
Imprime :
/path/to/some/file.txt.zip
Voir les autres réponses ci-dessous si vous devez traiter ce cas.
Vous pouvez faire le vôtre avec :
>>> import os
>>> base=os.path.basename('/root/dir/sub/file.ext')
>>> base
'file.ext'
>>> os.path.splitext(base)
('file', '.ext')
>>> os.path.splitext(base)[0]
'file'
Note importante : S'il y a plus d'un .
dans le nom du fichier, seul le dernier est supprimé. Par exemple :
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
Voir ci-dessous pour d'autres réponses à ce sujet.
Mais même lorsque j'importe os, je ne suis pas en mesure de l'appeler path.basename. Est-il possible de l'appeler aussi directement que basename ?
import os
, et ensuite utiliser os.path.basename
importer
osne signifie pas que vous pouvez utiliser
os.foosans faire référence à
os`.