【问题标题】:How to extract a filename from a URL & some extra data attached to it?如何从 URL 中提取文件名以及附加的一些额外数据?
【发布时间】:2019-10-19 04:20:12
【问题描述】:

我正在尝试从下载 URL 中提取文件名,该 URL 不仅以文件名本身结尾,而且在文件名之后的 URL 中附加了额外的数据 https://some_website.com/folder/file_name.mkv?st=OyvPiQZL8HmbCkapHo-tLg&e=1571543844

我尝试在 python 中使用 os.path.basename。 它包括文件名和额外内容本身 像上面的链接返回

file_name.mkv?st=OyvPiQZL8HmbCkapHo-tLg&e=1571543844

而不是

文件名.mkv

【问题讨论】:

  • 那么目标是使用查询参数作为文件名吗?您可以发布代码、示例输入、当前输出和预期输出吗?也请在问题中使用降价。

标签: python regex python-3.x file url


【解决方案1】:

也许,

[^/]+(?=\?st)

可能工作正常。

测试

import re
string = ' https://some_website.com/folder/file_name.mkv?st=OyvPiQZL8HmbCkapHo-tLg&e=1571543844'
expression = r'[^/]+(?=\?st)'

print(re.search(expression, string).group(0))

输出

file_name.mkv

如果您希望简化/修改/探索表达式,在regex101.com 的右上角面板中已对此进行了说明。如果您愿意,您还可以在this link 中观看它如何与一些示例输入匹配。


【讨论】:

    【解决方案2】:
    urld = 'https://ragex.eu/home.html?lol=sdasd'
    returned_data = urld[urld.rfind('/') + 1: len(urld)]
    print(returned_data) #output : home.html?lol=sdasd
    

    好吧,我不是专家,但这里有一个更简单的方法。

    【讨论】:

      猜你喜欢
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 2019-07-07
      • 2021-12-11
      • 1970-01-01
      相关资源
      最近更新 更多