📅  最后修改于: 2023-12-03 15:27:11.834000             🧑  作者: Mango
在 Python 中比较 URL 路径非常简单,只需要使用 urllib.parse
模块中的 urlsplit
函数即可。urlsplit
函数将 URL 分解为五个部分:协议、位置、路径、查询和片段,并将其作为命名元组返回。
from urllib.parse import urlsplit
url1 = 'https://www.python.org/doc/current/c-api/arg.html?highlight=argparse#argparse.ArgumentParser.add_argument'
url2 = 'https://www.python.org/doc/current/c-api/arg.html'
parsed_url1 = urlsplit(url1)
parsed_url2 = urlsplit(url2)
if parsed_url1.path.startswith(parsed_url2.path):
print('The first URL is a subpath of the second URL.')
else:
print('The two URLs do not share a common subpath.')
在上面的示例中,我们使用 urlsplit
分别处理两个 URL,并通过比较它们的路径部分来确定它们是否具有公共子路径。
另一个用于比较 URL 路径的 Python 标准库是 os.path
模块。使用 os.path.commonprefix
函数可以找到两个路径中共享的最长前缀。
import os
url1 = 'https://www.python.org/doc/current/c-api/arg.html?highlight=argparse#argparse.ArgumentParser.add_argument'
url2 = 'https://www.python.org/doc/current/c-api/arg.html'
path1 = os.path.normpath(urlparse(url1).path)
path2 = os.path.normpath(urlparse(url2).path)
common_prefix = os.path.commonprefix([path1, path2])
if common_prefix != '/':
print(f"The two URLs share the common subpath {common_prefix}")
else:
print('The two URLs do not share a common subpath.')
在上面的示例中,我们使用 urlparse
函数获取了每个 URL 的路径部分,并使用 os.path.normpath
函数规范化路径。然后,我们使用 os.path.commonprefix
查找共同的前缀。
无论您要使用哪种方法,都可以轻松比较 URL 的路径部分。