You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从带查询参数的URL中提取完整的文件名?

带查询参数的URL文件名通用提取方案

核心逻辑

两步处理即可覆盖绝大多数标准URL场景:

  • 第一步:剔除URL中的查询参数(?开头部分)、锚点(#开头部分),仅保留纯路径内容
  • 第二步:从纯路径中按路径分隔符/分割,取最后一段非空内容即为目标文件名

多语言实现示例

Python 实现

推荐使用标准库urllib处理,无需手动切割字符串,兼容性更强:

from urllib.parse import urlparse
import os

def extract_filename(url: str) -> str:
    parsed = urlparse(url)
    return os.path.basename(parsed.path)

如果不想引入依赖,也可以用手动切割的轻量实现:

def extract_filename(url: str) -> str:
    # 先后剔除查询参数、锚点
    pure_path = url.split("?")[0].split("#")[0]
    # 过滤路径末尾/带来的空值,取最后一段有效内容
    path_segments = [seg for seg in pure_path.split("/") if seg]
    return path_segments[-1] if path_segments else ""

测试示例:输入https://dl.yasdl.com/2021/Android/Bazaar.14.1.0_YasDL.com.apk?aqqr,输出为Bazaar.14.1.0_YasDL.com.apk,符合预期。

JavaScript 实现

function extractFilename(url) {
    const purePath = new URL(url).pathname;
    const pathSegments = purePath.split("/").filter(seg => seg);
    return pathSegments.length ? pathSegments.at(-1) : "";
}

适配场景

  • 支持所有带?查询参数、#锚点的标准HTTP/HTTPS/FTP等格式URL
  • 自动适配任意扩展名的文件,无需提前指定后缀规则
  • 兼容路径末尾带/的异常格式URL

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 23:36:03