Python内置库:pathlib模块详解

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1. 概述

Pathlib模块提供了表示文件系统路径的类,其语义适用于不同的操作系统。路径类分为纯路径和具体路径,前者提供无I/O的纯计算操作,后者继承纯路径,但也提供I/O操作。

2. 与os模块中函数对应关系

下表将各种os模块函数映射到相应的PurePath/Path等价函数。

image.png

尽管os.path.relpath()和PurePath.rerelative_to()有一些重叠的用例,但它们的语义差异足以保证不认为它们是等效的。

函数具体作用请参考官网: (pathlib — Object-oriented filesystem paths — Python 3.9.17 documentation)

3. pathlib模块内置函数

3.1 获取目录

  • Path.cwd(), 返回文件当前所在目录
  • Path.home(),返回用户的主目录
from pathlib import Path

current_path = Path.cwd()
home_path = Path.home()
print(f"文件当前所在目录:{current_path }\n用户主目录:{home_path}")

输出: 
文件当前所在目录:E:\CYX_DeepLearning
用户主目录:C:\Users\22799


3.2 目录拼接

from pathlib import Path

parts = ['dataset', '1.txt']

print(Path.cwd())
print(Path.cwd().joinpath(*parts))
print(Path.cwd().parent.joinpath(*parts))
print(Path.cwd().parent.parent.joinpath(*parts))

输出:

E:\CYX_DeepLearning
E:\CYX_DeepLearning\dataset\1.txt
E:\dataset\1.txt
E:\dataset\1.txt


斜杠 / 操作符用于拼接路径

from pathlib import Path

newPath = Path.cwd() / 'python'
print(Path.cwd())
print(f"目录为:{newPath}")

输出;

E:\CYX_DeepLearning
目录为:E:\CYX_DeepLearning\python



3.3 创建、删除目录, 计算相对路径

  • Path.mkdir(),创建给定路径的目录。
  • Path.rmdir(),删除该目录,目录文件夹必须为空。
  • Path.relative_to(),用于获取一个路径相对于另一个基础路径的相对路径。
  • Path.unlink() 方法用于删除指定路径所指向的文件或符号链接
from pathlib import Path

# mkdir()方法默认情况下不会创建父级目录。如果你想要创建嵌套的目录结构,你需要设置 parents=True 参数。

# 创建一个名为 "1.txt" 的新目录
path = Path(Path.cwd()/'1.txt')
path.mkdir()

# 也可以使用多级目录路径创建目录
nested_path = Path(Path.cwd()/'3'/'2.txt')
nested_path.mkdir(parents=True)

from pathlib import Path

# 删除一个空目录
path = Path("/path/to/directory")
path.rmdir()

FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '\\path\\to\\directory'


from pathlib import Path

base_path = Path("/home/user")
file_path = Path("/home/user/documents/file.txt")

relative_path = file_path.relative_to(base_path)
print(relative_path)

输出;

documents\file.txt

from pathlib import Path

file_path = Path("/path/to/file.txt")
file_path.unlink()

3.4 读写文件

  • Path.open(mode=’r’),以 “r” 格式打开 Path 路径下的文件,若文件不存在即创建后打开。

  • Path.read_bytes(),读取指定路径下的文件,并以文本形式返回文件的内容,等同 open 操作文件的 “rb” 格式。

  • Path.read_text(),打开 Path 路径下的文件,以 str 格式读取文件内容,等同 open 操作文件的 “r” 格式。

  • Path.write_bytes(),将字节数据写入指定路径下的文件,等同 open 操作文件的 “wb” 格式。

  • Path.write_text(),将文本内容写入指定路径下的文件。,等同 open 操作文件的 “w” 格式。

from pathlib import Path

file_path = Path("/path/to/file.txt")

# 以只读模式打开文件
file_obj = file_path.open()

# 以写入模式打开文件
file_obj = file_path.open(mode='w')

# 以追加模式打开文件
file_obj = file_path.open(mode='a')

with file_path.open(mode='w') as file_obj:
    file_obj.write("这是要写入的句子。\n")
    file_obj.write("这是第二个句子。\n")


from pathlib import Path

# 读取文件内容并返回字符串
file_path = Path("/path/to/file.txt")
file_content = file_path.read_text()

# 输出文件所有内容
print(file_content)

from pathlib import Path

# 将字节数据写入文件
file_path = Path("./1.txt")
data = b"Hello, world!"  # 字节数据
file_path.write_bytes(data)

from pathlib import Path

# 将文本写入文件
file_path = Path("/path/to/file.txt")
text = "Hello, world!"  # 文本内容
file_path.write_text(text)

3.5 获取文件所在目录的不同部分字段

  • Path.resolve(),通过传入文件名,返回指定路径的绝对路径。
  • Path.parts 属性返回路径中不带分隔符的各个部分组成的元组。
  • Path.name,属性返回指定路径的基本文件名或目录名,包含后缀名。
  • Path.rename(),重命名路径
  • Path.parent,属性返回指定路径的父级路径。
  • Path.parents 属性返回指定路径的所有父级路径。
  • Path.stem,返回指定路径的文件名或目录名的基本名称部分,不包含后缀名。
  • Path.suffix,返回指定路径的文件的后缀(扩展名)部分。
  • Path.anchor,返回指定路径的根部分或驱动器部分。
  • Path.drive,返回驱动器名称。
  • Path.root,返回路径的根目录。
from pathlib import Path

file_path = Path("/path/to/file.txt")
print(file_path.parts)

输出:

('\\', 'path', 'to', 'file.txt')

from pathlib import Path

path = Path("/path/to/old_name.txt")
new_path = path.rename("/path/to/new_name.txt")

print(new_path)  # 输出:/path/to/new_name.txt

3.6 文件、路径是否存在判断

  • Path.exists():用于检查指定路径是否存在。
  • Path.is_dir():用于检查指定路径是否是一个目录。
  • Path.is_file():检查指定路径是否是一个文件。
  • Path.is_absolute(),用于检查路径是否为绝对路径。
from pathlib import Path

file_path = Path("/path/to/file.txt")
exists = file_path.exists()

# 输出路径是否存在
print(exists)

3.7 文件统计以及匹配查找

  • Path.iterdir():方法返回一个迭代器,用于遍历指定路径下的所有子项(文件和目录)
  • Path.glob(pattern),方法返回一个迭代器,用于匹配指定路径下的文件和目录。
  • Path.rglob(pattern),返回一个递归迭代器,用于递归地匹配指定路径及其子目录下的文件和目录。
from pathlib import Path

# 只返回该文件夹内的文件和目录
dir_path = Path("/path/to/directory")
for item in dir_path.iterdir():
   print(item)

from pathlib import Path

dir_path = Path("/path/to/directory")
for item in dir_path.glob("*.txt"):
    print(item)

from pathlib import Path

dir_path = Path("/path/to/directory")
for item in dir_path.rglob("*.txt"):
    print(item)

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
👉 CSDN大礼包:gift::[全网最全《Python学习资料》免费赠送:free:!](https://blog.csdn.net/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502) (安全链接,放心点击)

若有侵权,请联系删除

Python内置库pathlib print(p.stat().st_atime) # 输出最后访问时间print(p.stat().st_mtime) # 输出最后修改时间print(p.stat().st_atime) # 输出文件系统最后访问时间print(p.stat().st_mtime) # 输出文件系统最后修改时间print(p.stat().st_atime) # 输出文件系统最后访问时间print(p.stat().st_mtime) # 输出文件系统最后修改时间。 阅读详情

相关推荐

Python学习笔记:pathlib】文件路径的操作

此文章主要写pathlib一些常用操作,如何操作路径、如何遍历文件夹等等,内容不全,全是个人学习笔记,以小白的视角学Python

XLQ的博客 1366

Python pathlib模块详解:优雅处理文件路径

pathlib模块Python 3.4及以上版本中引入的标准库,用于处理文件路径和文件系统操作。它提供了一种面向对象的路径操作方式,使得代码更加清晰易读,并且避免了在不同操作系统下的路径分隔符问题。通过本文的介绍,可以学习到Python pathlib模块的基本用法、常用类和方法、路径操作技巧以及实际应用示例。pathlib模块提供了一种优雅而直观的方式来处理文件路径和文件系统操作,使得代码更加清晰易读,并且避免了跨平台路径分隔符问题。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1849

Pythonpathlib 模块使用详解

本文给大家介绍了 Pythonpathlib 模块,为 Python 工程师对该模块的使用提供了支撑,让大家了解如何使用 pathlib 模块读写文件、操纵文件路径和基础文件系统,统计目录下的文件类型以及查找匹配目录下某一类型文件等。

2301_79644036的博客 1312

Python文件路径处理之pathlib模块

pathlib模块Python中的路径操作提供了一个更加现代和面向对象的API。通过使用Path对象的方法和属性,可以轻松地执行各种路径操作,使得代码更加清晰和易于理解。无论是读取文件、遍历目录还是执行文件操作,pathlib都是一个非常强大且方便的工具。

专注于Python编程技术的分享与交流,致力于帮助开发者提升编程技能,解决实际问题,探索Python的无限可能。 5331

Python中的pathlib和Path(面向对象的文件系统路径操作库)

一种内置的面向对象的文件系统路径操作库,本篇文章介绍了Path中的常见的属性和方法,并给出了代码示例。

Le0v1n 的博客 7106

python模块pathlib模块

一:pathlib模块简介 以下为官方直译: pathlibPython内置库Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类在纯路径之间划分,纯路径提供纯粹的计算操作而没有I / O,以及具体路径,它继承纯路径但也提供I / O操作。 听起...

4680

Python 文件路径处理神器:pathlib 模块详解

pathlib模块Python 3.4 及以上版本引入的标准库,它基于面向对象的思想,将文件系统路径抽象为对象,通过对象的属性和方法来完成路径的各种操作。pathlib模块支持不同操作系统的路径格式,自动处理路径分隔符的差异,使得代码在不同平台上具有更好的兼容性。pathlib模块Python 开发者提供了一种简洁、高效、面向对象的方式来处理文件系统路径。通过Path和PurePath等类,我们可以轻松完成路径的创建、判断、操作、遍历等任务,同时避免了传统字符串路径处理的诸多问题。

Tekin 是深耕技术 20 年的全栈实战派专家,精通 Go/Python/Java 等多语言开发。博客专注技术原理与实战结合,深度解析 Python 高阶编程、Go 语言架构、数据库优化等硬核内容。涵盖并发编程、机器学习、云原生等前沿领域,通过真实案例拆 4203

Python3教程:pathlib 模块的用法

pathlib 模块提供了表示文件系统路径的类,可适用于不同的操作系统。使用 pathlib 模块,相比于 os 模块可以写出更简洁,易读的代码。pathlib 模块中的 Path 类继承自 PurePath,对 PurePath 中的部分方法进行了重载,相比于 os.path 有更高的抽象级别。本文将带你学习如何使用 pathlib 模块中的 Path 类读写文件、操纵文件路径和基础文件系统,统计目录下的文件类型以及查找匹配目录下某一类型文件等。...

Python热爱者的博客 7367

python pathlib模块_pathlib模块

pathlib模块一、pathlib库官方定义pathlibPython内置库Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类在纯路径之间划分,纯路径提供纯粹的计算操作而没有 I / O,以及具体路径,它继承纯路径但也提供 I / O 操作。...

weixin_28808097的博客 1227

pythonpathlib 模块详解说明

摘要:Pythonpathlib模块提供面向对象的路径操作方式,比传统os.path更简洁、跨平台兼容。核心功能包括:使用/运算符路径拼接、丰富的路径属性获取、文件读写和目录操作、路径遍历与模式匹配。优势在于代码可读性强、自动处理平台差异、集成常用文件操作。适用于现代Python项目,但需注意大文件处理仍建议使用传统with语句,某些第三方库可能需要转换路径为字符串。pathlib已成为Python路径操作的首选方案。

浩瀚之水的专栏 1473

Python内置库pathlib

Path(“文件路径”).stem, Path(“文件路径”).suffix 将文件名分离,分成前缀和后缀。Path(“文件路径”).is_absolute() 判断当前路径是否为绝对路径。Path(“文件路径”).rename(“xxx”) 重命名文件/文件夹名称。Path(“文件路径”).is_file() 判断当前路径是否为文件。Path(“文件路径”).is_dir() 判断当前路径是否为目录。Path(“文件路径”).stat() 返回当前路径的信息。

taifyang的博客 5413

Python中的pathlib

Python中的pathlib库,包含from pathlib import Path和import os以及os.path

Le0v1n 的博客 3952

路径处理库pathlib使用详解

在编程中处理文件的读写操作时免不了要和文件路径打交道,甚至有时候为了完成某些场景功能会变的有些繁琐,以前在Python中操作文件路径,我们更多的时候是使用os模块。 而到了Python3时代后,Python3的系统标准库pathlib模块的 Path 对路径的操作会更简单。甚至可以说pathlib已经可以完全替代os.path,它完全采用面向对象的编程方式,因为Python 文档给它的定义是 Ob...

Anders's Blog 2万+

Python系列】pathlib模块

pathlib模块Python 标准库的一部分,它将文件系统路径抽象为对象,从而提供了一种更加直观和易于理解的方式来处理文件路径。pathlib模块中的Path类是核心,它封装了文件路径,并提供了许多有用的方法和属性来操作这些路径。pathlib模块Python 开发者提供了一种强大且易于使用的方式来处理文件路径。通过面向对象的方法,它简化了路径操作,减少了错误,并提高了代码的可读性和可维护性。无论是简单的路径拼接,还是复杂的文件系统遍历,pathlib都是一个不可或缺的工具。👍🏻呗。

CSDN站内信: https://i.csdn.net/#/msg/chat/qyj19920704 1万+

Python常用内置库介绍

Python内置库无需额外安装,开箱即用,能够帮助我们高效便捷地完成各种编程任务。

m0_75067629的博客 925

pathlib模块详解

pathlib模块详解 pathlib模块 pathlib 模块的操作对象是各种操作系统中使用的路径 “pure”类对字符串进行操作,不与实际的文件系统进行交互, 不关心路径是否真实有效。 PurePath 类会将路径看做是一个普通的字符串,它可以将多个指定的字符串拼接成适用于当前操作系统的路径格式,同时还可以判断任意两个路径是否相等。 PurePosixPath 和 PureWindowsPath 是 PurePath 的子类,前者用于操作 UNIX(包括 Mac OS X)风格的路径,后者

Kwoky的博客 4589

python中path的用法_pythonpathlib模块的基本用法与总结

前言相比常用的 os.path而言,pathlib 对于目录路径的操作更简介也更贴近 Pythonic。但是它不单纯是为了简化操作,还有更大的用途。pathlibPython内置库Python 文档给它的定义是:The pathlib module – object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义...

weixin_40002238的博客 1567

Python内置库pathlib

相信你一定用os库对文件系统进行过操作,比如文件读写,路径组合,上传下载等都会涉及到文件路径。但是某些操作使用os库就很不优雅,例如查找上级路径,不同操作系统间的路径处理等。今天我们就介...

Python研究所 1013
上一篇: pydantic的高阶玩法
下一篇: python | 探寻python正则表达式-1
Python_P叔
博客等级 码龄3年 5372粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值