Como obter o nome do arquivo sem a extensão de um caminho em Python?
Obtendo o nome do arquivo sem a extensão:
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
Impressões digitais:
/path/to/some/file
Nota Importante:_ Se o nome do arquivo tiver vários pontos, apenas a extensão após o último é removida. Por exemplo, o nome de um arquivo tem múltiplos pontos:
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
Impressões digitais:
/path/to/some/file.txt.zip
Veja outras respostas abaixo se você precisa lidar com esse caso.
Podes fazer o teu próprio com:
>>> 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'
Nota importante: Se houver mais de um .
no nome do arquivo, apenas o último é removido. Por exemplo, se houver mais de um .
no nome do arquivo, apenas o último será removido:
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
Veja abaixo outras respostas que tratam disso.
Mas mesmo quando importo os, não sou capaz de lhe chamar caminho.basename. É possível chamar-lhe tão directamente como basename?
Importar os', e depois utilizar 'os.path.basename'.
Importar os
não significa que você pode utilizar os.foo
sem se referir a os
.