Hvordan får man filnavnet uden udvidelse fra en sti i Python?
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.
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.
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
.