Hvordan får man filnavnet uden udvidelse fra en sti i Python?

Hvordan får man filnavnet uden udvidelse fra en sti i Python?

Løsning

Få navnet på filen uden udvidelsen:

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

Udskriver:

/path/to/some/file

Vigtig bemærkning: Hvis filnavnet har flere punkter, fjernes kun udvidelsen efter det sidste punktum. For eksempel:

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

Udskriver:

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

Se andre svar nedenfor, hvis du har brug for at håndtere dette tilfælde.

Kommentarer (8)

Du kan lave din egen med:

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

Vigtig bemærkning: Hvis der er mere end én . i filnavnet, fjernes kun den sidste. For eksempel:

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

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

Se nedenfor for andre svar, der omhandler dette.

Kommentarer (5)

Men selv når jeg importerer os, kan jeg ikke kalde den path.basename. Er det muligt at kalde det så direkte som basename?

import os, og derefter bruge os.path.basename

import af os betyder ikke, at du kan bruge os.foo uden at henvise til os.

Kommentarer (3)