Python路径解析:获取盘符、目录、文件名及扩展名的实用方法

一颗松果
一颗松果
发布时间:2026-10-13| 5人浏览过
原创

本文详细介绍Python中os.path模块处理文件路径的核心函数。通过splitdrive获取盘符,split和dirname分离目录与文件名,basename提取文件名,splitext分离扩展名。此外,结合rfind与切片操作实现自定义路径片段提取,并利用join合并路径,提供完整的路径解析解决方案。

获取盘符与路径分割

要获取完整路径中的盘符信息,可以使用os.path.splitdrive()函数。该函数将路径分为盘符部分和剩余部分。


import os
path="C:\\Users\\wuyanzu\\x1.jpg"
drive,rem=os.path.splitdrive(path)
print(drive)
print(rem)

#输出:
C:
\Users\wuyanzu\x1.jpg

分离目录与文件名

若需同时获取文件所在的目录路径及文件名,可使用os.path.split()函数。它会将路径字符串在最后一个分隔符处分割,返回一个包含目录和文件名的元组。


import os
path="C:\\Users\\wuyanzu\\x1.jpg"
dir,file=os.path.split(path)
print(dir)
print(file)

#输出:
C:\Users\wuyanzu
x1.jpg

提取目录路径与文件名

当只需要获取文件所在的目录路径时,可以使用os.path.dirname()函数。该函数返回路径中除去文件名后的目录部分。


import os
path="C:\\Users\\wuyanzu\\x1.jpg"
dir=os.path.dirname(path)
print(dir)

#输出:
C:\Users\wuyanzu

若只需提取文件名(包含扩展名),可以使用os.path.basename()函数。它直接返回路径字符串中最后的文件名部分。


import os
path="C:\\Users\\wuyanzu\\x1.jpg"
basename=os.path.basename(path)
print(basename)

#输出:
x1.jpg

分离文件扩展名

要分离文件名和文件扩展名,可以使用os.path.splitext()函数。该函数将路径分为不带扩展名的文件名部分和扩展名部分,返回一个元组。


import os
path="C:\\Users\\wuyanzu\\x1.jpg"
dir,ext=os.path.splitext(path)
print(dir)
print(ext)

#输出:
C:\Users\wuyanzu\x1
.jpg

自定义路径片段提取与组合

除了使用内置函数,还可以通过字符串操作获取路径中的特定片段。

利用字符串的rfind(e)方法可以找到指定字符e最后一次出现的位置索引,随后通过切片操作获取该字符之前的子字符串。


path="C:\\Users\\wuyanzu\\x1.jpg"
index=path.rfind("w")
print(index)
print(path[:index])

#输出:
9
C:\Users\

需要注意的是,如果路径中存在多个相同的分隔符或检索字符,rfind方法会返回最后一个匹配字符的位置,因此切片结果将基于最后一个匹配点。

Δ:若要将目录和文件名重新组合为完整路径,可使用os.path.join()函数。


dir="C:\\Users\\wuyanzu" #后面加上\\也行
file="x1.jpg"
path=os.path.join(dir,file)
print(path)

#输出:
C:\Users\wuyanzu\x1.jpg

Δ:若需通过指定分隔符切割字符串以获取片段,可使用split(str, num)方法。其中str为分隔符,num为可选参数,指定分割次数;若不指定num,则默认分割所有可能的片段。


path="C:\\Users\\wuyanzu\\x1.jpg"
pieces=path.split('\\',2)
print(pieces)

#输出:
['C:', 'Users', 'wuyanzu\\x1.jpg']

以上方法涵盖了Python中处理文件路径的常见需求,包括盘符、目录、文件名及扩展名的提取与组合。掌握这些技巧有助于更高效地进行文件路径操作。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。