python pathlib 获取文件名

举报
林欣 发表于 2025/10/15 09:09:37 2025/10/15
【摘要】 在 Python 中,使用 pathlib 模块可以非常方便地获取文件名(包括不带扩展名的文件名、扩展名等)。以下是常见操作: 1. 获取文件名(带扩展名)使用 Path.name 属性:from pathlib import Pathfile_path = Path("/path/to/your/file/example.txt")print(file_path.name) # 输出: ...

在 Python 中,使用 pathlib 模块可以非常方便地获取文件名(包括不带扩展名的文件名、扩展名等)。以下是常见操作:


1. 获取文件名(带扩展名)

使用 Path.name 属性:

from pathlib import Path

file_path = Path("/path/to/your/file/example.txt")
print(file_path.name)  # 输出: example.txt

2. 获取文件名(不带扩展名)

使用 Path.stem 属性:

from pathlib import Path

file_path = Path("/path/to/your/file/example.txt")
print(file_path.stem)  # 输出: example

3. 获取文件扩展名

使用 Path.suffix(单个扩展名)或 Path.suffixes(多个扩展名列表):

from pathlib import Path

file_path = Path("/path/to/your/file/example.tar.gz")

print(file_path.suffix)   # 输出: .gz(最后一个扩展名)
print(file_path.suffixes) # 输出: ['.tar', '.gz'](所有扩展名列表)

4. 获取父目录路径

使用 Path.parent

from pathlib import Path

file_path = Path("/path/to/your/file/example.txt")
print(file_path.parent)  # 输出: /path/to/your/file

5. 组合路径并获取文件名

pathlib 可以直接拼接路径,然后提取文件名:

from pathlib import Path

dir_path = Path("/path/to/your/file")
file_path = dir_path / "subfolder" / "example.txt"

print(file_path.name)  # 输出: example.txt

6. 判断是否是文件

使用 Path.is_file()

from pathlib import Path

file_path = Path("/path/to/your/file/example.txt")
if file_path.is_file():
    print(f"{file_path.name} 是一个文件")

完整示例

from pathlib import Path

# 定义文件路径
file_path = Path("/home/user/docs/report.pdf")

# 获取文件名信息
print("完整文件名:", file_path.name)      # report.pdf
print("不带扩展名:", file_path.stem)      # report
print("扩展名:", file_path.suffix)        # .pdf
print("父目录:", file_path.parent)        # /home/user/docs

# 检查路径类型
if file_path.is_file():
    print(f"{file_path.name} 是文件")

为什么推荐 pathlib

  • 跨平台:自动处理不同操作系统(Windows/Linux/macOS)的路径分隔符(/\)。
  • 面向对象:比 os.path 更直观,支持链式操作。
  • 功能丰富:集成路径拼接、文件检查、读写等操作。

如果需要兼容旧版 Python(<3.4),可以用 os.path,但新项目建议优先使用 pathlib

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。