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 文档很详细啊,自己看吧

所以说写静态语言基本不需要文档

回到顶部