python模块之pathlib的使用介绍,用于解决路径相关问题,功能与os.path类似,但是使用更为方便

Python路径处理:os.path与pathlib库的深度对比与实战指 路径拼接与分解文件/目录存在性检查路径规范化文件属性获取目录遍历与文件查找新项目优先使用pathlib:更现代、更安全保持一致性:一个项目中尽量统一使用一种方式注意Windows兼容性:使用运算符而非硬编码分隔符合理转换类型:在需要字符串的API中使用str(path)pathlib是现代Python路径操作的首选:提供了更直观、更安全的APIos.path仍有其价值:特别是在性能敏感和旧代码维护场景根据项目需求选择:没有绝对的好坏,只有适合与否最终建议。 阅读详情

在这里插入图片描述

在拜读别人的代码时,发现了pathlib这个模块的使用,其能够将路径字符串转化为路径对象,在路径对象中,也包含了很多有用的方法供我们调用,其与os.path的功能几乎无差,但是由于直接将路径变为对象,直接使用对象本身的方法就能够完成很多变换的功能,同时其也是默认安装在python3较新的版本中的,因此可以说是十分便捷了。

本文将简要介绍pathlib的基本使用方式,以及其中与os.path中方法的对应。


Purepath类

pathlib中主要有两个类,PurePath和Path,这两个类分别负责对文本形式的路径的处理(即PurePath类处理的路径只是文本形式的,都是将路径字符串进行各种变换或组合的方法,并没有判断真实路径的方法)和对真实存在的路径进行处理(可以判断文件是否真实存在,以及对真实路径进行处理等)。

先介绍一下PurePath类,此类相对较为简单,其在windows系统和linux系统中分别拥有不同的子类即PureWindowsPath和PurePosixPath,这是因为windows和linux系统的路径表示形式不同。

from pathlib import Purepath

p1 = Purepath('C://Windows', 'some/path', 'bar')
# 生成了实例 :PureWindowsPath('C:/Windows/some/path/bar')
# 这里生成实例的方法就不多举例了,实际上就是此方法能将一些字符组合为当前系统下正确的一些路径
# 但并不保证此路径一定存在

# Purepath也具有一些方法,如root获取字符串中的根路径,获取文件名(base),match用于与通配符匹配,
# parents获取文件所处目录,driver获取盘符(如C:),parts将路径通过斜杠进行划分,
# isabsolute判断是不是绝对路径,但要注意这些方法都只是对类实例结果进行
# 处理判断,并不会与真实文件或目录进行匹配。
# 这些方法这里也不单独介绍了。

Path类

Path类实际上是Purepath的子类,但其具有的功能更为强大,这里将常用的方法与os的方法对比并列为列表(参考官方文档),但要注意两种方法的结果可能并不完全一样,在调用时需要先尝试看看结果:

os和os.pathpathlib方法功能介绍
os.path.abspath()Path.resolve()返回任意路径的绝对路径
os.chmod()Path.chmod()修改文件权限
os.makedirs(),os.mkdir()Path.mkdir()直接创建文件夹,若已存在那么会报错
os.rename()Path.rename()重命名文件或文件夹
os.replace()Path.replace()重命名文件或文件夹
os.rmdir()Path.rmdir()移除目录
os.remove(),os.unlink()Path.unlink()移除文件或符号链接
os.getcwd()Path.cwd()获取当前的工作目录
os.path.exists()Path.exists()判断路径是否真实存在
os.path.expanduser()Path.expanduser() 和 Path.home()将例如~符号这样的符号转换为当前user,就变为了/home/user/work这样的目录结构
os.listdir()Path.iterdir()获取当前目录下的文件及目录,但是这里是iter对象
os.path.isdir()Path.is_dir()判断是否为目录
os.path.isfile()Path.is_file()判断是否为文件
os.path.islink()Path.is_symlink()判断是否有符号链接
os.link()Path.hardlink_to(target)设置一个硬连接到target
os.symlink()Path.symlink_to(target)设置一个符号连接到target
os.readlink()Path.readlink()返回之前设置的符号链接所指向的路径
os.path.relpath()Path.relative_to(target)判断路径与target间是否是相对的
os.stat()Path.stat(),Path.owner(), Path.group()获取此路径的一些信息

叮!

参考:https://docs.python.org/zh-cn/3/library/pathlib.html

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

相关推荐

python进阶-03-pathlib替代os和os.path读写文件

`pathlib` 是一个功能强大且简洁的模块,在python3.4版本以后被加入进来,主要的功能是 1.操作文件和目录路径 2.需要跨平台路径兼容 3.替代传统的os和os.path、open() 既然这么强大我们就来一步步解析pathlib并彻底掌握pathlib,好!来开始我们今天的日拱一卒!

Lookontime的博客 1613

python中用pathlib库解决调用文件路径的问题

通过pathlib库写的路径,即使其他执行文件(比如demo.py)调用了该函数,路径的查找并不是从执行文件的当前路径开始查找,而是从被调用的函数文件(比如read_conf.py)的当前路径开始找。在read_conf.py中通过pathlib库生成了到conf.ini的路径,那么read_conf.py与conf.ini可以说是绑定在一起了,pathlib获取到的是绝对路径,只要project内的结构不变,任何地方调用该函数,不管执行文件在哪里,都能找到conf.ini文件并读取配置信息。

古代宇航员的博客 2213

避坑指南:Zabbix poller进程100%占用的5种常见原因及解决方案

本文深入剖析了Zabbix poller进程占用率高达100%的五大常见原因,包括监控项与进程数不匹配、不可达主机资源浪费、数据库性能瓶颈、监控项配置不合理以及版本缺陷。文章提供了从系统化诊断到针对性解决方案的完整指南,并重点介绍了如何通过优化zabbix_server.conf中的StartPollers等关键参数进行有效调优,帮助运维人员从根本上解决这一经典性能问题。

7z8x2c4v6b9的博客 250

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

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

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

昆仑通态,自由串口通讯

软件默认无该功能,需要问客服索要扩展包。

cfqq1989的博客 1536

Win11注册表没有MMC的解决方法

本文详细介绍了在Win11系统中解决注册表没有MMC项的问题的方法。通过创建并导入注册表修复文件,我们可以成功地在注册表中添加缺失的MMC项。在操作过程中,需要注意备份注册表、以管理员身份运行工具以及系统更新等事项。希望本文能够帮助到遇到类似问题的用户,提高系统管理的效率和便捷性。如果你还有其他关于Windows操作系统的问题或疑问,欢迎随时提问并寻求帮助。

nntxthml的博客 1552

pathlib一个优雅的路径操作模块,碾压os

对于 Python 中的路径操作,大多数人第一反应肯定是 os,可以说 os 已经在老一辈 Python coder 心中扎深蒂固,现存的很多教程中操作路径仍然使用 os,殊不知从 python3.4 开始,pathlib 正式成为标准库,已经能够完全取代 os。无论从功能还是易用性都已经超越 os。 看个经典的例子,我们分别使用 os 与 pathlib 来获取上层目录和上上层目录。 os 方法 import os.path # 获取上层目录 os.path.dirname(os.getcwd()) #

向日葵的专属太阳 1万+

Halcon实战:5分钟搞定工业零件中的圆孔检测(附完整代码)

本文详细解析了如何利用Halcon的hough_circle算法在5分钟内高效完成工业零件中的圆孔检测。通过优化图像采集、智能预处理和参数化边缘检测,解决了金属反光、油污干扰等工业场景常见问题,并提供了完整的代码示例和实战案例,显著提升检测精度和效率。

weixin_29061997的博客 239

python的文件操作模块shutil和pathlib总结

python的文件操作模块shutil和pathlib总结

ftzchina的博客 3001

JavaScript China城市联动

中国全城市的地址省,市,县 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <script src="jquery.js"></script> <script src="json.js"></...

唯唯同学 2241

DeepSeek掘金——用DeepSeek模型构建AI 代理

在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。人工智能领域正在迅速发展,DeepSeek 的模型代表了智能 AI 代理开发的重大进步。在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。

3858

Python 路径库pathlib常用函数

除了os.path,模块pathlib也能对文件路径进行操作: Python 3.8.8 (tags/v3.8.8:024d805, Feb 19 2021, 13:08:11) [MSC v.1928 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license()" for more information. >>> import pathlib >>> dir(pathlib)

汉阳Hann's Home 3151

以太网GMAC-RK3568

第 2 章和第 3 章中针对 RMII/RGMII 接口芯片和 USB 以太网两种类型芯片在 SDK 上的配置做详细的描述,第 4 章介绍以太网在 Android 上的相关调用接口。第 5 章提供常见问题的排查建议由于在 RK 系列的 SoC 中内置了以太网 MAC 控制器,所以只需要搭配一颗以太网 PHY 芯片,即可实现以太网卡功能按照规范,即使是不同厂家的 PHY,仍然有一部分寄存器的定义是通用的,只要配置了这些通用的寄存器,基本上 PHY 就可以正常工作代码位置在。

qq_24093081的博客 1942

Python 的 os.path() 和 pathlib.Path()

在 Python 中一旦涉及到路径相关的操作,os.path() 模块无疑是用得最多的了,就让我们一块来看看吧! 方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(path) 返回文件名 os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径 os.path.dirname(path) 返回文件路径 os.path.exists(path)

Looking的网页备忘录和个人知识库 6998

30、模态组合规则在振动分析中的应用

本文详细介绍了模态组合规则在振动分析中的应用,重点讨论了绝对峰值叠加法(SRSS)和完全二次组合(CQC)的理论基础、应用场景及优缺点。通过具体工程实例,展示了模态组合规则在地震载荷下结构响应分析中的实际效果,并提供了应用步骤和注意事项,为结构设计和安全评估提供了科学依据。

nice1的博客 221

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python模块之pathlib模块

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

4707

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pathlib, 一个优雅的python库,os和os.path两个模块的更优解!

但是路径并不只是一个字符串,如果需要对文件进行操作,需要结合使用多个标准库的功能,如: 需要移动当前目录下的一些文件到备份目录,需要使用。创建、删除、读取、写入、查找、移动、复制、拆分,以及其他任何你想对文件路径或文件本身执行的操作,获取当前路径的方法,也可以显示的传入路径字符串进行路径创建,支持相对路径和绝对路径字符串的传递。,使得上述的问题变得更加轻松,pathlib创建的Path对象,可以直接通过正斜杠运算符。而且,由于不同的操作系统使用的分隔符不同,使用字符串拼接路径就容易出现问题。

m0_59236602的博客 1724

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python文件路径处理之pathlib模块

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

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

python内置模块pathlib.Path类操作目录和文件

功能类似于os.getcwd()print(f'当前目录: {Path.cwd()}')当前目录: /Users/htsc/Desktop功能类似于os.path.samefile()。测试代码:先初始化Path类,传入参数Path.cwd(),表示当前路径。结果:True。

kymppcds的博客 3003

Python 文件路径处理:os 和 os.path 与 pathlib 的全面对比与应用

Python文件路径处理是开发中的重要任务,传统使用os和os.path模块进行函数式操作,而Python 3.4引入的pathlib提供了更简洁的面向对象方式。文章对比了两者特点:os.path适用于跨平台路径拼接与检查,但代码较繁琐;pathlib通过Path对象封装路径操作,更直观易用。内容涵盖路径类型(绝对/相对路径)、当前工作目录操作,以及两种方法的具体应用场景,帮助开发者根据需求选择合适工具,编写高效可靠的代码。

静水深流 1496

【python库对比】路径专题 os.path和pathlib对比

python 路径处理 高频使用库 os.path 和 pathlib 对比 以及代码示例,并在最后提供了2个库高频使用的接口示例

m0_74536743的博客 2294

解决Python路径问题:为什么你应该用 pathlib 替代 os.path

花姐来啦!今天咱们来聊聊在 Python 中告别传统的os.path,拥抱全新的pathlib!你可能会想:“哎,os.path不还好着呢吗?怎么突然要换新?”放心,花姐就带你走一遍升级之路,让你也能成为pathlib的忠实粉丝。os.path。

奔跑的蜗牛 844

pathlib安装_pathlib介绍-比os.path更好的路径处理方式

我们先来聊下三种操作系统windows、Mac 和 Linux,Windows filenames: C:some_foldersome_file.txt Most other operating systems: /some_folder/some_file.txt如上所示,带来的一个编程小麻烦就是不同的操作系统,文件连接所用正反斜线是不一致的。这是一个有趣的历史:early 1980’s co...

weixin_39926042的博客 2651

Python文件路径处理pathlib模块

摘要:Python的pathlib模块是3.4版本引入的标准库,提供面向对象的文件路径处理方式,旨在替代传统的os.path模块。核心功能包括:使用Path类进行路径拼接(支持/操作符)、获取路径各部分属性(parent/name等)、解析相对路径为绝对路径、检查路径状态(exists/is_file等)、目录遍历(iterdir/glob方法)、创建/删除目录和文件等操作。相比os.path,pathlib采用更直观的面向对象风格,支持链式调用,代码更简洁易读。特别适合与__file__变量配合使用获取当

cx1的博客 1732

Python 中的路径操作:从 os.path 到 pathlib

本文系统介绍了Python中处理文件路径的常见方法与最佳实践。文章首先分析了路径操作易出错的原因,包括操作系统分隔符差异和相对路径混淆问题。重点对比了传统os.path模块与现代pathlib库的使用方式,推荐优先使用pathlib的面向对象方法进行路径操作。此外还介绍了glob和fnmatch等辅助模块,并总结了硬编码路径、目录混淆等常见错误及解决方案。文章最后给出实用技巧和性能对比,强调三大原则:避免硬编码分隔符、正确获取脚本目录、优先使用pathlib。这些方法能帮助开发者编写跨平台、健壮的路径处理代

张三的博客 695
上一篇: python中itertools的使用方法,工作学习必备!
下一篇: python DataFrame中对行、列处理顺序的细节解析,经常搞混的可不要错过啦
你大佬来啦
博客等级 码龄7年 322粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值