Come ottenere il nome del file senza l'estensione da un percorso in Python?
Ottenere il nome del file senza l'estensione:
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
Stampa:
/path/to/some/file
Nota importante: Se il nome del file ha più punti, viene rimossa solo l'estensione dopo l'ultima. Per esempio:
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
Stampa:
/path/to/some/file.txt.zip
Vedi altre risposte qui sotto se hai bisogno di gestire questo caso.
Puoi fare il tuo con:
>>> 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 c'è più di un .
nel nome del file, solo l'ultimo viene rimosso. Per esempio:
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
Vedi sotto per altre risposte che riguardano questo aspetto.
Ma anche quando importo os, non sono in grado di chiamarlo path.basename. È possibile chiamarlo direttamente come basename?
importare os
, e poi usare os.path.basename
.
Importare os
non significa che puoi usare os.foo
senza fare riferimento a os
.