是否有从文件名中提取扩展名的功能?
#1楼
一种选择可能是与点分开:
>>> filename = "example.jpeg"
>>> filename.split(".")[-1]
'jpeg'
文件没有扩展名时没有错误:
>>> "filename".split(".")[-1]
'filename'
但您必须小心:
>>> "png".split(".")[-1]
'png' # But file doesn't have an extension
#2楼
值得在其中添加一个下标,这样您就不会怀疑自己的列表为什么未显示JPG。
os.path.splitext(filename)[1][1:].strip().lower()
#3楼
使用splitext时,双扩展名的文件存在问题(例如file.tar.gz , file.tar.bz2等)。
>>> fileName, fileExtension = os.path.splitext('/path/to/somefile.tar.gz')
>>> fileExtension
'.gz'
但应为: .tar.gz
可能的解决方案在这里
#4楼
右拆分的另一种解决方案:
# to get extension only
s = 'test.ext'
if '.' in s: ext = s.rsplit('.', 1)[1]
# or, to get file name and extension
def split_filepath(s):
"""
get filename and extension from filepath
filepath -> (filename, extension)
"""
if not '.' in s: return (s, '')
r = s.rsplit('.', 1)
return (r[0], r[1])
#5楼
filename='ext.tar.gz'
extension = filename[filename.rfind('.'):]