当前位置 : 主页 > 网络编程 > PHP >

Python:使用os.path.splitext获取文件扩展名

来源:互联网 收集:自由互联 发布时间:2023-09-03
方式一 通过字符串拆分,可以很容易的获取文件扩展名 实现代码 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简单区别

网友评论