Kako iz poti v Pythonu dobiti ime datoteke brez končnice?
Pridobitev imena datoteke brez končnice:
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
Natisne:
/path/to/some/file
pomembna opomba: Če ima ime datoteke več pik, se odstrani samo končnica za zadnjo piko. Na primer:
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
Natisne se:
/path/to/some/file.txt.zip
Če morate obravnavati ta primer, glejte druge odgovore spodaj.
Svojo lahko naredite z:
>>> 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'
Pomembna opomba: Če je v imenu datoteke več kot en .
, se odstrani le zadnji. Na primer:
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
Za druge odgovore, ki obravnavajo to vprašanje, glejte spodaj.
Toda tudi ko uvozim os, ga ne morem poklicati path.basename. Ali ga je mogoče poklicati neposredno kot basename?
import os
in nato uporabi os.path.basename
Če uvoziš os
, to še ne pomeni, da lahko uporabiš os.foo
, ne da bi se skliceval na os
.