Python3中url模块的path详细使用例子
旧 url 的就会, 新的 path,一头雾水。求大神给个详细点的使用方法看看!!
Python3中url模块的path详细使用例子
6 回复
我理解你想了解Python3中处理URL路径的模块。Python3中处理URL的主要模块是urllib.parse,它包含了urlparse()和urlunparse()等函数来解析和构建URL。
下面是一个完整的例子展示如何使用urllib.parse处理URL路径:
from urllib.parse import urlparse, urlunparse, urljoin, quote, unquote
# 1. 解析URL获取路径信息
url = "https://www.example.com:8080/path/to/page?query=python#section"
parsed = urlparse(url)
print("完整URL:", url)
print("协议:", parsed.scheme)
print("网络位置:", parsed.netloc) # 包含主机和端口
print("路径:", parsed.path)
print("查询参数:", parsed.query)
print("片段标识:", parsed.fragment)
print("用户名:", parsed.username)
print("密码:", parsed.password)
print("主机名:", parsed.hostname)
print("端口:", parsed.port)
# 2. 构建URL
new_url = urlunparse((
'https',
'api.example.com',
'/v2/users/profile',
'',
'id=123&type=admin',
'details'
))
print("\n构建的URL:", new_url)
# 3. 路径拼接
base_url = "https://example.com/api/v1/"
relative_path = "users/list"
full_url = urljoin(base_url, relative_path)
print("\n路径拼接结果:", full_url)
# 4. URL编码和解码
original_path = "/search/编程/python 教程"
encoded_path = quote(original_path)
decoded_path = unquote(encoded_path)
print("\n原始路径:", original_path)
print("编码后:", encoded_path)
print("解码后:", decoded_path)
# 5. 修改路径部分
parsed = urlparse("https://example.com/old/path")
# 创建新的ParseResult对象,只修改path部分
new_parsed = parsed._replace(path="/new/path", query="page=2")
print("\n修改路径后:", urlunparse(new_parsed))
# 6. 提取路径的各个部分
path = "/docs/python/3.9/library/urllib.parse.html"
path_parts = path.strip('/').split('/')
print("\n路径分解:")
for i, part in enumerate(path_parts):
print(f" 第{i+1}级: {part}")
# 7. 获取文件名和扩展名
from os.path import splitext, basename
filename = basename(path)
name, ext = splitext(filename)
print(f"\n文件名: {filename}")
print(f"名称部分: {name}")
print(f"扩展名: {ext}")
这个例子涵盖了URL路径处理的主要场景:解析URL获取路径信息、构建URL、路径拼接、URL编码解码、修改路径、分解路径层级以及提取文件名。
总结:用urllib.parse模块处理URL路径。
django 文档很详细啊,自己看吧
谢谢!



