方式一
通过字符串拆分,可以很容易的获取文件扩展名
实现代码
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://127.0.0.1/img/demo.png?size=50x60" ext = get_filename_ext(filename) print(ext) # .png
总结
两种方式差不多,如果传入的文件路径是一个url,参数不会被处理
参考