Python3教程:pathlib 模块的用法

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) # 输出文件系统最后修改时间。 阅读详情
AI摘要

本文详细介绍了Python的pathlib模块,包括获取目录、目录拼接、创建删除目录、读写文件、文件路径字段、存在性判断以及文件统计和匹配查找等功能。通过实例展示了如何使用Path类进行高效文件系统操作。

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

1.获取目录

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

应用示例:

from pathlib import Path
currentPath = Path.cwd()
homePath = Path.home()
print("文件当前所在目录:%s\n用户主目录:%s" %(currentPath, homePath))

2.目录拼接

斜杠 / 操作符用于拼接路径,比如创建子路径。

应用示例:

from pathlib import Path
currentPath = Path.cwd()
newPath = currentPath / 'python-100'
print("新目录为:%s" %(newPath))

3.创建、删除目录

  • Path.mkdir(),创建给定路径的目录。
  • Path.rmdir(),删除该目录,目录文件夹必须为空。

应用示例:

from pathlib import Path
currentPath = Path.cwd()
makePath = currentPath / 'python-100'
makePath.mkdir()
print("创建的目录为:%s" %(nmakePath))
from pathlib import Path
currentPath = Path.cwd()
delPath = currentPath / 'python-100'
delPath.rmdir()
print("删除的目录为:%s" %(delPath))

4.读写文件

  • Path.open(mode=‘r’),以 “r” 格式打开 Path 路径下的文件,若文件不存在即创建后打开。
  • Path.read_bytes(),打开 Path 路径下的文件,以字节流格式读取文件内容,等同 open 操作文件的 “rb” 格式。
  • Path.read_text(),打开 Path 路径下的文件,以 str 格式读取文件内容,等同 open 操作文件的 “r” 格式。
  • Path.write_bytes(),对 Path 路径下的文件进行写操作,等同 open 操作文件的 “wb” 格式。
  • Path.write_text(),对 Path 路径下的文件进行写操作,等同 open 操作文件的 “w” 格式。

应用示例:

from pathlib import Path
currentPath = Path.cwd()
mkPath = currentPath / 'python-100.txt'
with mkPath.open('w') as f:  # 创建并以 "w" 格式打开 python-100.txt 文件。
    f.write('python-100')  # 写入 python-100 字符串。
f = open(mkPath, 'r')
print("读取的文件内容为:%s" % f.read())
f.close()
from pathlib import Path
currentPath = Path.cwd()
mkPathText = currentPath / 'python-100-text.txt'
mkPathText.write_text('python-100')
print("读取的文件内容为:%s" % mkPathText.read_text())

str2byte = bytes('python-100', encoding = 'utf-8')
mkPathByte = currentPath / 'python-100-byte.txt'
mkPathByte.write_bytes(str2byte)
print("读取的文件内容为:%s" % mkPathByte.read_bytes())

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

  • Path.resolve(),通过传入文件名,返回文件的完整路径。
  • Path.name,可以获取文件的名字,包含后缀名。
  • Path.parent,返回文件所在文件夹的名字。
  • Path.stem,获取文件名不包含后缀名。
  • Path.suffix,获取文件的后缀名。
  • Path.anchor,获取文件所在的盘符。
from pathlib import Path
txtPath = Path('python-100.txt')
nowPath = txtPath.resolve()
print("文件的完整路径为:%s" % nowPath)
print("文件完整名称为(文件名+后缀名):%s" % nowPath.name)
print("文件名为:%s" % nowPath.stem)
print("文件后缀名为:%s" % nowPath.suffix)
print("文件所在的文件夹名为:%s" % nowPath.parent)
print("文件所在的盘符为:%s" % nowPath.anchor)

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

  • Path.exists(),判断 Path 路径是否指向一个已存在的文件或目录,返回 True 或 False。
  • Path.is_dir(),判断 Path 是否是一个路径,返回 True 或 False。
  • Path.is_file(),判断 Path 是否指向一个文件,返回 True 或 False。
from pathlib import Path
currentPath = Path.cwd() / 'python'

print(currentPath.exists())  # 判断是否存在 python 文件夹,此时返回 False。
print(currentPath.is_dir())  # 判断是否存在 python 文件夹,此时返回 False。

currentPath.mkdir()  # 创建 python 文件夹。

print(currentPath.exists())  # 判断是否存在 python 文件夹,此时返回 True。
print(currentPath.is_dir())  # 判断是否存在 python 文件夹,此时返回 True。

currentPath = Path.cwd() / 'python-100.txt'

print(currentPath.exists())  # 判断是否存在 python-100.txt 文件,此时文件未创建返回 False。
print(currentPath.is_file())  # 判断是否存在 python-100.txt 文件,此时文件未创建返回 False。

f = open(currentPath,'w')  # 创建 python-100.txt 文件。
f.close()

print(currentPath.exists())  # 判断是否存在 python-100.txt 文件,此时返回 True。
print(currentPath.is_file())  # 判断是否存在 python-100.txt 文件,此时返回 True。

7.文件统计以及匹配查找

  • Path.iterdir(),返回 Path 目录文件夹下的所有文件,返回的是一个生成器类型。
  • Path.glob(pattern),返回 Path 目录文件夹下所有与 pattern 匹配的文件,返回的是一个生成器类型。
  • Path.rglob(pattern),返回 Path 路径下所有子文件夹中与 pattern 匹配的文件,返回的是一个生成器类型。
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 使用 Path.iterdir() 获取当前文件下的所有文件,并根据后缀名统计其个数。
import pathlib
from collections import Counter
currentPath = pathlib.Path.cwd()
gen = (i.suffix for i in currentPath.iterdir())
print(Counter(gen))

import pathlib
from collections import Counter
currentPath = pathlib.Path.cwd()
gen = (i.suffix for i in currentPath.glob('*.txt'))  # 获取当前文件下的所有 txt 文件,并统计其个数。
print(Counter(gen))
gen = (i.suffix for i in currentPath.rglob('*.txt'))  # 获取目录中子文件夹下的所有 txt 文件,并统计其个数。
print(Counter(gen))

8.总结

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

Python Pathlib 详解 阅读详情

相关推荐

python路径操作新标准:pathlib 模块

之前如果要使用 python 操作文件路径,我总是会条件反射导入 os.path。 而现在,我会更加喜欢用新式的 pathlib, 虽然用得还是没有 os.path 熟练,但是以后会坚持使用。 pathlib 库从 python3.4 开始,到 python3.6 已经比较成熟。如果你的新项目可以直接用 3.6 以上,建议用 pathlib。相比于老式的 os.path 有几个优势: 老的路径操作函数管理比较混乱,有的是导入 os, 有的又是在 os.path 当中,而新的用法统一可以用 pathlib.

分享软件测试技术和学习方法 2047

文件操作So Easy!来,一起体验下Python的Pathlib模块~

作者 | Geir Arne Hjelle译者 | 陈祥安来源 |Python学习开发(ID:python3-5)前言大多人处理文件用的最多的还是os模快吧,比如下面...

Python大本营的博客 2077

初出茅庐,python模块篇:pickle模块和pathlib模块(太过详细,篇幅较长)

在使用python的过程中,都会接触到python模块,那么python模块是什么意思?模块的概念有哪些呢?很多刚开始学习python的估计会很蒙圈,今天我们就先讲一下pickle模块和pathlib模块

m0_68255027的博客 1414

Python中pathlib 模块的用法

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

Python热爱者的博客 1787

Python使用os模块、Try语句、pathlib模块判断文件

通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块。 1.使用os模块 os模块中的os.path.exists()方法用于检验文件是否存在。 判断文件是否存在 在学习过程中有什么不懂得可以加我的 python学习交流扣扣q...

Python学习笔记 1833

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

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

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

python模块之pathlib模块

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

4707

python 文件操作新姿势 pathlib模块的详细使用

pathlib模块的基本使用和总结,包括获取文件路径的基本属性、文件的基本信息、判断文件是否存在以及它是文件还是文件夹、文件的创建、删除、重命名,还有一个很有用的方法:Path.glob(pattern) 递归遍历该目录下所有文件,获取所有符合pattern的文件,返回一个generator。

叶庭云 成为自己的光 8126

【Python系列】pathlib模块

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

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 1万+

C++版Cesium实战:从OpenGL到3DTiles的全流程开发指南

本文提供了一份C++版Cesium全流程开发指南,详细阐述了如何利用OpenGL和Qt从零构建高性能、可离线部署的三维GIS应用。内容涵盖开发环境搭建、OpenGL渲染引擎初始化、Cesium核心坐标系与场景管理移植,并重点解析了3DTiles数据的解析、异步加载与渲染优化等硬核实战技术,旨在帮助开发者实现与现有C++工业软件的深度集成。

weixin_28077113的博客 164

【数据结构】平行四边形数量

平行四边形个数,哈希表,散列

cyy010617的博客 4009

Python文件路径处理之pathlib模块

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

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

2025年北京市职工职业技能大赛第六届信息通信行业网络安全技能大赛复赛CTF部分WP-哥斯拉流量分析

题目没有任何提示,附件gzl.pcap解题哥斯拉流量300多KB包很多,没啥经验只能挨个看回来之后又狠狠得撸了一把哥斯拉流量分析我这里用的是哥斯拉4.0.1测试链接这里发了两个包,我们进行分析。

深耕网络安全领域,聚焦护网行动(HW)、渗透测试、等级保护(等保)、CTF 竞赛四大核心方向,提供技术干货、实战经验与行业洞察。 1810

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

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

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

EU 2021/646 eCall工程拆解:MSD、测试模式与型式核准

紧急呼叫系统(eCall)是车载通信中面向事故救援的安全功能,其原理是在碰撞或人工触发后,通过蜂窝网络向公共安全应答点发送最小数据集(MSD),并建立语音链路。技术价值在于缩短救援响应时间、提升事故后生存率,应用场景覆盖乘用车、轻型商用车及车载T-Box等前装通信模块。面向欧盟市场时,EU 2021/646把eCall从安装要求推进到型式核准测试,关注触发链路、备用电源、GNSS定位、MSD字段、音频质量与回拨能力。工程落地需要围绕测试模式、字段校验、配置管理和送检样件建立可交付合规方案。

weixin_31815843的博客 207

Tiff、jpg图片怎么样添加地理坐标信息

Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方

树木_xzw的博客 2万+

【Python】pathlib 模块的用法(Path)

【Python】pathlib 模块的用法(Path)

Danger的博客 2249

VS2022打包C#安装包(最新、最全)

VS2022打包C#安装包(最新、最全)

qq_37959253的博客 9892

Python3 中使用 Pathlib 模块进行文件操作

Python3 中使用 Pathlib 模块进行文件操作 更多参考官方文档 pathlib — 面向对象的文件系统路径 在本教程中,你将了解如何使用 pathlib 模块操作目录和文件的名称。 学习如何读取和写入文件,拼接路径和操作底层文件系统的新方法,以及如何列出文件并迭代它们的一些示例。 大多人处理文件用的最多的还是 os 模快吧,比如下面这样的操作 >>> path.rsplit('\\', maxsplit=1)[0] 或者写出下面这样长长的代码 >>> os.

勤学如春起之苗,不见其增,日有所长! 辍学如磨刀之石,不见其损,日有所亏! 5652

DO-254标准详解:航空电子硬件设计保证指南全方位解析

RTCA DO-254, 也被称为《机载电子硬件设计保证指南》,是航空电子硬件设计和验证中的关键标准,旨在为确保机载电子硬件的安全性提供设计保证。自2000年首次发布以来,DO-254就成为了民航和军用飞机中电子硬件设计认证的基准文件。随着航空硬件技术的进步和日益复杂化,确保硬件设计的准确性、可靠性和安全性变得至关重要。本标准是由RTCA和EUROCAE共同开发的,适用于涉及机载硬件的航空公司、飞机制造商、供应商和认证机构。

qq_41854911的博客 3682

基于STM32的嵌入式平台实现EtherCAT主站

本文将介绍如何在基于STM32的嵌入式平台上构建EtherCAT主站,并提供相应的源代码。使用SOEM库提供的API函数,我们可以实现与EtherCAT从站设备的实时通信和数据交换。在STM32的代码中,使用SOEM库提供的API函数初始化EtherCAT主站。在SOEM库中,我们可以找到EtherCAT主站的实现代码和相关的API函数。使用SOEM库提供的API函数实现EtherCAT主站的功能,包括发送和接收EtherCAT数据帧、处理从站设备的状态等。确保连接正常并且设备能够相互通信。

CodeSageX的博客 2832

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

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

weixin_40002238的博客 1575

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python pathlib模块_python3的pathlib模块

PurePath类用法#coding=utf-8import pathlibpathlib是python3才引入的包PurePath类用法:#windows系统:pathlib.PurePath()path=pathlib.PurePath("file1.txt")print(path) #结果:file1.txtprint(type(path)) #结果: path为PureWi...

weixin_29671137的博客 574

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python pathlib模块用法详解

Python pathlib模块用法详解 和前面章节中引入的模板不同,pathlib 模块中包含的是一些类,它们的继承关系如图 1 所示。 图 1 pathlib模块中类的组织结构 图 1 中,箭头连接的是有继承关系的两个类,以 PurePosixPath 和 PurePath 类为例,PurePosizPath 继承自 PurePath,即前者是后者的子类。 pathlib 模块的操作对象是各种操作系统中使用的路径(例如指定文件位置的路径,包括绝对路径和相对路径)。这里简单介绍一下图 1 中包含的几个类

ccc369639963的博客 748

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: Python3教程:math 模块的用法
下一篇: Python3教程: logging 模块用法
Python热爱者
博客等级 码龄7年 3048粉丝 1330原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值