方式一 通过字符串拆分,可以很容易的获取文件扩展名 实现代码 filename = demo.pngext = filename.split(.)[-1]print(ext)# png 如果传入一个url filename = demo.png?size=50x60ext = filename.split(.)[-1]print(ext)#
方式一
通过字符串拆分,可以很容易的获取文件扩展名
实现代码
filename = "demo.png"
ext = filename.split(".")[-1]
print(ext)
# png
如果传入一个url
filename = "demo.png?size=50x60"
ext = filename.split(".")[-1]
print(ext)
# png?size=50x60
方式二
通过内置函数,也可以获取文件扩展名
方法签名
# 输入一个文件名,或者url,返回文件名的名称部分和扩展名
def os.path.splitext(filename) -> name, ext
使用示例
# -*- coding: utf-8 -*-
import os
filename = "demo.png"
name, ext = os.path.splitext(filename)
print(name, ext)
# demo .png
注意:获取的扩展名带有分隔符.
如果传入url
import os
filename = "demo.png?size=50x60"
name, ext = os.path.splitext(filename)
print(name, ext)
# demo .png?size=50x60
通用方式
如果是url的地址,我们可以先使用urlparse
先解析出文件路径,再解析文件扩展名
实现代码
# -*- coding: utf-8 -*-
import os
from urllib.parse import urlparse
def get_filename_ext(filename):
"""
获取文件名或url中的扩展名
"""
url_path = urlparse(filename).path
_, ext = os.path.splitext(url_path)
return ext
if __name__ == '__main__':
filename = "http://img.558idc.com/uploadfile/allimg/20230829/demo.jpg?size=50x60"
ext = get_filename_ext(filename)
print(ext)
# .png
总结
两种方式差不多,如果传入的文件路径是一个url,参数不会被处理
参考 Python编程:urlsplit, urlparse简单区别