有这样一个字符串:
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()来寻找字符串中最右边(即最后一次)出现'/'的位置,然后截取这个位置后一个位置到结尾所有的字符即可。
代码如下:
参考链接:
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))
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
函数:
urllib.parse
模块,该模块包含了解析网址的功能。from urllib.parse import urlparse
getFileName
函数,该函数接收一个网址字符串作为输入参数。def getFileName(url):
urlparse
函数解析网址,并将结果赋值给parsed_url
变量。 parsed_url = urlparse(url)
parsed_url
中获取完整的路径部分,并将结果赋值给path
变量。 path = parsed_url.path
split
函数将path
按照斜杠(/
)进行拆分,并获取最后一个元素作为文件名。 file_name = path.split("/")[-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
希望对你有帮助!如果有任何问题,请随时提问。