import 前加 from,表示模块写在 from 和 import 之间(如 pathlib),模块里要拿的类写在 import 后面(如 Path)。pathlib 是 Python 3.4+ 引入的面向对象文件系统路径处理模块,比传统 os.path 更直观易读。

一、基础:创建路径对象

Path() 可接收字符串路径(绝对/相对),支持多段路径拼接(无需手动加 /):

二、核心操作:路径属性与判断

1. 路径属性(提取各部分)

2. 路径状态判断

三、文件/目录操作

1. 目录操作

2. 文件操作

四、实用场景

1. 批量改后缀

2. 读文件元信息

五、与 os.path 对比

操作 os.path pathlib
拼接路径 os.path.join(“a”,“b”,“c.py”) Path(“a”)/“b”/“c.py”
父目录 os.path.dirname("/a/b/c.py") Path("/a/b/c.py").parent
是否文件 os.path.isfile(“x.txt”) Path(“x.txt”).is_file()

Path 是面向对象路径、支持链式调用、跨平台自动处理 / 和 \、内置 read/write 无需手动 open(),推荐优先用 pathlib 替代 os.path。

六、from pathlib import Path 和 import pandas 的区别

前者是「从模块里拿出一个类」;后者是「把整个模块全部端进来」。

1. 语法对比

写法 导入目标 用时怎么写
from pathlib import Path 只拿 pathlib 里的 Path 类 Path(‘data.csv’)
import pandas 整个 pandas 模块 pandas.DataFrame(…)

2. 背后机制

  • import pandas:解释器执行模块,在当前命名空间建一个名字 pandas 指向整个模块对象,所有类/函数都是它的属性,必须用 pandas.Series、pandas.read_csv 点语法访问;

  • from pathlib import Path:解释器同样把 pathlib 完整跑一遍,但只把 Path 这个类抽出来放进当前命名空间,可直接写 Path,无需模块前缀。

3. 实际影响

  • 命名空间:from … import 只引入 1 个名字;import 引入整个模块(内部上百个对象挂在模块名下)。

  • 简洁性:只会用到极个别对象时 from 更短;频繁用到模块内很多函数、或名字易冲突时保留模块前缀。

  • 重名风险:from pandas import DataFrame 容易和你自定义的 DataFrame 冲突;写成 import pandas as pd 永远 pd.DataFrame,零冲突。

4. 该用哪种

场景 推荐 理由
只用一两个不冲突的名字 from module import Klass 短、可读
用到很多功能或名字太通用 import module [as alias] 安全、可维护
社区惯例 import pandas as pd / np / plt 大家都这么写,一眼看懂

一句话总结:from pathlib import Path → 只把类拿进来省前缀,适合几乎只用 Path;import pandas → 把整个模块搬进来用 pandas.xxx 访问,安全功能全。选哪个看“会不会频繁用模块里其他东西”和“名字冲不冲突”。