如何从Python路径中获取不带扩展名的文件名?
例如,如果有的话"/path/to/some/file.txt"
,我会想要的"file"
。
获取不带扩展名的文件名:
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
印刷:
/path/to/some/file
重要说明:如果文件名包含多个点,则仅删除最后一个扩展名之后的扩展名。例如:
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
印刷:
/path/to/some/file.txt.zip
如果你需要处理这种情况,请参见下面的其他答案。
如果这是足够普通的操作,也许应该值得它作为自己的官方命令?类似于os.path.filename(path_to_file)而不是os.path.splitext(os.path.basename(path_to_file))[0]
如果文件名包含多个点怎么办?
对于想与matteok一样的人,如果有多个点,splitext会在最后一个点拆分(因此
splitext('kitty.jpg.zip')
给出('kitty.jpg', '.zip')
)。请注意,此代码返回完整的文件路径(不带扩展名),而不仅仅是文件名。
是啊,所以你必须做的
splitext(basename('/some/path/to/file.txt'))[0]
(我总是似乎在做)