使用Python的pathlib模块分割文件路径
pathlib
模块(Python 3.4+)提供了面向对象的文件系统路径操作方式,比传统的os.path
更加直观和易用。以下是使用pathlib
分割文件路径的几种方法:
基本路径分割
from pathlib import Path
# 创建一个Path对象
path = Path('/home/user/docs/report.txt')
# 获取路径的不同部分
print(path.parent) # 父目录: /home/user/docs
print(path.name) # 文件名(包含后缀): report.txt
print(path.stem) # 文件名(不包含后缀): report
print(path.suffix) # 文件后缀: .txt
print(path.suffixes) # 所有后缀列表: ['.txt']
多级路径处理
path = Path('/usr/local/bin/python3')
# 获取路径的各个部分
print(path.parts) # ('/', 'usr', 'local', 'bin', 'python3')
# 遍历父目录
for parent in path.parents:
print(parent)
# 输出:
# /usr/local/bin
# /usr/local
# /usr
# /
处理相对路径
rel_path = Path('docs/../images/photo.jpg')
# 解析相对路径
print(rel_path.resolve()) # 绝对路径,如 /home/user/images/photo.jpg
# 获取纯名称部分
print(rel_path.name) # photo.jpg
合并路径
base = Path('/home/user')
subpath = Path('docs/report.txt')
# 使用 / 运算符合并路径
full_path = base / subpath
print(full_path) # /home/user/docs/report.txt
处理多个后缀的文件
archive = Path('backup.tar.gz')
print(archive.suffix) # .gz (只返回最后一个后缀)
print(archive.suffixes) # ['.tar', '.gz']
print(archive.stem) # backup.tar (不包含最后一个后缀)
检查路径属性
path = Path('/home/user/file.txt')
print(path.is_file()) # 是否是文件
print(path.is_dir()) # 是否是目录
print(path.exists()) # 路径是否存在
pathlib
模块的这些方法使得路径操作更加直观和安全,特别是在跨平台开发时,它能自动处理不同操作系统的路径分隔符问题。