协慌网

登录 贡献 社区

在 Python 中从文件名中提取扩展名

是否有从文件名中提取扩展名的功能?

答案

是。使用os.path.splitext (参见Python 2.X 文档Python 3.X 文档 ):

>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'

与大多数手动字符串拆分尝试不同, os.path.splitext会正确地将/a/bc/d视为没有扩展名而不是扩展名.c/d ,并且它会将.bashrc视为没有扩展名而不是扩展名.bashrc

>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')
import os.path
extension = os.path.splitext(filename)[1]

版本 3.4 中的新功能。

import pathlib

print(pathlib.Path('yourPathGoesHere').suffix)

我很惊讶没有人提到过pathlibpathlib太棒了!

如果您需要所有后缀(例如,如果您有.tar.gz.suffixes将返回它们的列表!