Ako získať názov súboru bez prípony z cesty v jazyku Python?

Ako získať názov súboru bez prípony z cesty v jazyku Python?

Riešenie

Získanie názvu súboru bez prípony:

import os
print(os.path.splitext("/path/to/some/file.txt")[0])

Vytlačí:

/path/to/some/file

Dôležitá poznámka: Ak má názov súboru viacero bodiek, odstráni sa len prípona za poslednou bodkou. Napríklad:

import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])

Vytlačí sa:

/path/to/some/file.txt.zip

Ak potrebujete riešiť tento prípad, pozrite si ďalšie odpovede nižšie.

Komentáre (8)

Môžete si vyrobiť vlastné s:

>>> 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'

Dôležitá poznámka: Ak je v názve súboru viac ako jeden znak ., odstráni sa len posledný. Napríklad:

/root/dir/sub/file.ext.zip -> file.ext

/root/dir/sub/file.ext.tar.gz -> file.ext.tar

Ďalšie odpovede, ktoré to riešia, nájdete nižšie.

Komentáre (5)

Ale aj keď importujem os, nie som schopný zavolať path.basename. Je možné ho zavolať priamo ako basename?

import os a potom použiť os.path.basename

importovanieosneznamená, že môžete použiťos.foobez odkazu naos`.

Komentáre (3)