|
|
两种常用库:os 模块(传统)、pathlib
一、os 模块
- import os
- file_path = r"D:\work\docs\note.txt" # 完整路径
复制代码 获取所在目录(文件路径)
- dir_path = os.path.dirname(file_path)
- print(dir_path) # D:\work\docs
复制代码 获取完整文件名(文件名 + 后缀)
- full_name = os.path.basename(file_path)
- print(full_name) # note.txt
复制代码 分离文件名和后缀
- name, suffix = os.path.splitext(full_name)
- print(name) # note 纯文件名
- print(suffix) # .txt 后缀
复制代码 拼接路径(跨平台通用)
- new_path = os.path.join(dir_path, "new.txt")
复制代码 二、pathlib
- from pathlib import Path
- p = Path(r"D:\work\docs\note.txt")
复制代码 文件所在文件夹
- print(p.parent) # D:\work\docs
复制代码 完整文件名(带后缀)
纯文件名(无后缀)
文件后缀
全部后缀(多后缀文件适用,如 tar.gz)
- p2 = Path("a.tar.gz")
- print(p2.suffix) # .gz
- print(p2.suffixes) # ['.tar', '.gz']
复制代码 转为绝对路径
三、常用组合示例
- from pathlib import Path
- path = Path("./data/test.jpg")
- # 绝对路径
- abs_p = path.resolve()
- # 目录、全名、文件名、后缀
- folder = abs_p.parent
- filename = abs_p.name
- pure_name = abs_p.stem
- ext = abs_p.suffix
- print(f"目录:{folder}")
- print(f"完整文件名:{filename}")
- print(f"文件名:{pure_name}")
- print(f"后缀:{ext}")
复制代码
四、补充小知识点
文件夹路径调用 .name:只会拿到最后一级文件夹名
例:Path("D:/aaa/bbb").name → bbb
区分绝对 / 相对路径:p.is_absolute()
|
|