欢迎访问宙启技术站
智能推送

技巧Python中URL地址的相对路径和绝对路径转换方法

发布时间:2024-01-06 01:34:02

在Python中,可以使用urllib.parse模块来处理URL地址的相对路径和绝对路径的转换。该模块提供了urljoin函数,可以将一个相对路径转换为绝对路径,或将一个绝对路径转换为相对路径。以下是使用方法及示例:

1. 将相对路径转换为绝对路径:

from urllib.parse import urljoin

base_url = "https://www.example.com/path/"
relative_url = "../page.html"
absolute_url = urljoin(base_url, relative_url)
print(absolute_url)

在上面的例子中,base_url是基准URL,relative_url是相对路径。urljoin函数会将基准URL和相对路径拼接起来,得到绝对路径。输出结果为https://www.example.com/page.html

2. 将绝对路径转换为相对路径:

from urllib.parse import urljoin

base_url = "https://www.example.com/path/"
absolute_url = "https://www.example.com/page.html"
relative_url = urljoin(base_url, absolute_url)
print(relative_url)

在上面的例子中,base_url是基准URL,absolute_url是绝对路径。urljoin函数会将基准URL和绝对路径拼接起来,得到相对路径。输出结果为../page.html

需要注意的是,urljoin函数只能处理基准URL和相对路径之间的转换,无法处理两个绝对路径之间的转换。

另外,还可以使用urllib.parse.urlsplit函数将一个URL地址拆分为各个部分,然后再对其中的路径部分进行处理。下面是使用示例:

from urllib.parse import urljoin, urlsplit, urlunsplit

url = "https://www.example.com/path/page.html"
parts = urlsplit(url)
# 获取路径部分
path = parts.path
# 修改路径部分
path = "/new_path/page.html"
# 将修改后的路径部分重新组合为URL
new_parts = (parts.scheme, parts.netloc, path, parts.query, parts.fragment)
new_url = urlunsplit(new_parts)
print(new_url)

在上面的例子中,首先将URL拆分为各个部分,然后对路径部分进行修改,最后将修改后的各个部分组合为URL。输出结果为https://www.example.com/new_path/page.html

总结起来,要处理URL地址的相对路径和绝对路径的转换,可以使用urllib.parse模块中的urljoin函数进行操作,或使用urlsplit函数将URL地址拆分为各个部分,对路径部分进行处理后再重新组合。以上就是Python中URL地址相对路径和绝对路径转换的方法和示例。