Python如何实现以下功能

Python如何实现以下功能

有这样一个字符串:

https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png

当然,输入不一定是这个字符串,只要是网址的形式均合法,例如:

https://a.h1static.cn/bbs/2.0/template/color_free11/images/x64_logo.png
https://home.x64bbs.cn/uc_server/data/avatar/000/00/03/56_avatar_middle.jpg

需求

麻烦熟悉Python的同学帮我编写一个函数,格式如下:

def getFileName(url):

输入:一个网址(str)
返回:网址结尾的文件(上方示例分别为:PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png,x64_logo.png和56_avatar_middle.jpg)
请问应该如何实现呢?

可以使用rfind()来寻找字符串中最右边(即最后一次)出现'/'的位置,然后截取这个位置后一个位置到结尾所有的字符即可。

代码如下:

参考链接:


Python截取字符串(字符串切片)方法详解 字符串本质上就是由多个字符组成的,因此程序允许通过索引来操作字符,比如获取指定索引处的字符,获取指定字符在字符串中的位置等。 Python 字符串直接在方括号([])中使用索引 http://c.biancheng.net/view/2178.html



def getFileName(url):
    
    # https://blog.csdn.net/chenbaixing/article/details/106848195
    # 寻找网址字符串中,最后一次出现'/'的位置
    index = url.rfind('/')
    #print("index=",index)

    # http://c.biancheng.net/view/2178.html
    # 截取最后一次出现'/'的位置后一个字符,到网址结尾所有的字符
    fileName= url[index+1:]
    
    # 返回结果
    return fileName

url1="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"
url2="https://a.h1static.cn/bbs/2.0/template/color_free11/images/x64_logo.png"
url3="https://home.x64bbs.cn/uc_server/data/avatar/000/00/03/56_avatar_middle.jpg"
print(getFileName(url1))
print(getFileName(url2))
print(getFileName(url3))


img


def getFileName(url):
    # 从右以 / 分割 1 次,第二个就是文件名
    return url.rsplit('/',1)[1]


url1 = "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"
url2 = "https://a.h1static.cn/bbs/2.0/template/color_free11/images/x64_logo.png"
url3 = "https://home.x64bbs.cn/uc_server/data/avatar/000/00/03/56_avatar_middle.jpg"
print(getFileName(url1))
print(getFileName(url2))
print(getFileName(url3))

【以下回答由 GPT 生成】

要实现从网址中获取文件名的功能,你可以按照以下步骤来编写getFileName函数:

  1. 导入urllib.parse模块,该模块包含了解析网址的功能。
from urllib.parse import urlparse
  1. 编写getFileName函数,该函数接收一个网址字符串作为输入参数。
def getFileName(url):
  1. 使用urlparse函数解析网址,并将结果赋值给parsed_url变量。
    parsed_url = urlparse(url)
  1. parsed_url中获取完整的路径部分,并将结果赋值给path变量。
    path = parsed_url.path
  1. 使用字符串的split函数将path按照斜杠(/)进行拆分,并获取最后一个元素作为文件名。
    file_name = path.split("/")[-1]
  1. 返回文件名。
    return file_name

完整的代码如下所示:

from urllib.parse import urlparse

def getFileName(url):
    parsed_url = urlparse(url)
    path = parsed_url.path
    file_name = path.split("/")[-1]
    return file_name

你可以使用以下示例进行测试:

url1 = "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"
url2 = "https://a.h1static.cn/bbs/2.0/template/color_free11/images/x64_logo.png"
url3 = "https://home.x64bbs.cn/uc_server/data/avatar/000/00/03/56_avatar_middle.jpg"

print(getFileName(url1))  # 输出:PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
print(getFileName(url2))  # 输出:x64_logo.png
print(getFileName(url3))  # 输出:56_avatar_middle.jpg

希望对你有帮助!如果有任何问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^