Kako iz poti v Pythonu dobiti ime datoteke brez končnice?

Kako iz poti v Pythonu dobiti ime datoteke brez končnice?

Rešitev

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.

Komentarji (8)

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.

Komentarji (5)

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.

Komentarji (3)