python3使用pathlib替代os.path

Python 3.12+ pathlib 实战:5个场景替代 os.path,代码行数减少 40% 本文详细介绍了Python 3.12+中pathlib模块在文件操作中的五大实战场景,相比传统的os.path方法,代码行数减少40%。通过路径拼接、文件检测、目录遍历、文件读写和路径修改等示例,展示了pathlib的简洁性和高效性,特别适合现代Python开发。 阅读详情

路径管理库pathlib在python 3.4版本之后支持,它可以让我们采用面向对象的方式来处理路径,带来十分轻快简洁的体验。

下面介绍一些os.path的常用场景,以及pathlib的替代方案。

仅在第一个示例显示import的内容

1.获取当前路径的绝对路径

import os.path
from pathlib import Path

os.path.abspath(__file__)
# 替换为
Path(__file__).resolve()

2.获取文件名

FILE_NAME = os.path.basename(os.path.abspath(__file__))
# 替换为
FILE_NAME = Path(__file__).resolve().name

3.获取父目录

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 替换为
BASE_DIR = Path(__file__).resolve().parent

4.获取纯文件名和后缀

my_path = 'aa/bb/cc/dd.tar.gz'
pure_name = os.path.splitext(os.path.basename(my_path))[0]  # dd.tar
suffix = os.path.splitext(os.path.basename(my_path))[-1]    # .gz
# 替换为
pure_name = Path(my_path).stem  # dd.tar
suffix = Path(my_path).suffix   # .gz
suffixes = Path(my_path).suffixes #  ['.tar', '.gz']

5.属性判断和创建

my_path = 'aa/bb/cc/dd.tar.gz'
os.path.exists(my_path)  # 是否存在
os.path.isdir(my_path)   # 是否为目录
os.path.isfile(my_path)  # 是否是文件
os.mkdir('a/')           # 创建单级目录
os.makedires('a/b/c/d')  # 创建多级目录
# 替换为
Path(my_path).exists()   # 是否存在
Path(my_path).is_dir()   # 是否为目录
Path(my_path).is_file()  # 是否是文件
Path('a/').mkdir()                   # 创建单级目录
Path('a/b/c/d').mkdir(parents=True)  # 创建多级目录

6. 路径拼接

base_dir = 'a/b/c'
full_path = os.path.join(base_dir, 'd', 'e.txt') # a/b/c/d/e.txt
# 替换为
full_path = Path(base_dir).joinpath('d').joinpath('e.txt')
# 或者
full_path = Path(base_dir) / 'd' / 'e.txt'

7.打开文件

with open('./a.txt', 'w+') as fa: 
...
# 替换为
with Path('a.txt').open('w+') as fa:
...

总而言之,替换成pathlib会有更好的体验,建议升级使用这个全新的库。

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

相关推荐

华为海思IC前端中后端(COT&XPU)岗位笔试机考题

华为海思COT和XPU部门IC前端,IC中端,IC后端岗位笔试真题分享

weixin_37584728的博客 3361

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

UE5 C++教程(一、基本结构)

虚幻API由三块组成,分别是Runtime,Developer utilitiew,functionality for the Editor,大多数游戏性编程只使用运行时模块,最常见的三个是Corn、CornUObject和Engine。

skycol的博客 1万+

【Python】使用python实现Linux路径与Windows路径相互转换

使用python实现Linux路径与Windows路径相互转换

将冲破艾迪i的博客 6091

IEEE ACCESS Please note that all author names should be listed in English.(所有作者名需用英文名列出)

很奇怪哈,我明明手稿和提交页面作者都是用的英文,但是为什么还是会提示我没用英文呢?后来给编辑发消息,回的很快,他给我发了一个截图,确实是出现中文,但是我还是不知道为啥会出现中文。直到晚上回寝室洗澡的时候忽然想起来了是不是orcid的原因,因为它会强制作者绑定一个orcid账号,而我的orcid账号的名字刚好是中文的。当然这个只是我的一个猜想,但是我觉得可能性很大。我的第二篇论文已经投稿了快三个月了,效果非常的不好,所以我打算转投IEEE ACCESS了,希望这里可以给我一点好的建议。

kuyecsl的博客 3310

计算机网络自顶向下(第八版)第一章课后习题

电路交换网络具有以下优点:资源独占性,在建立连接时,电路交换网络为通信双方独占一条物理路径,不会受到其他用户的影响。低时延,由于建立了专用路径,数据传输时延较小,适合对时延敏感的应用,如实时语音和视频通信。数据链路层:提供节点之间可靠的数据传输,主要任务是错误检测和纠正,以及数据帧的传输和访问控制。移动蜂窝网络:如4G LTE和5G,通过移动基站提供的无线信号实现移动设备的互联网接入。网络层:负责数据包的路由和转发,主要任务是通过网络选择最佳路径,进行流量控制和拥塞控制。手机,服务器,路由器,电脑;

hiahiakk的博客 2255

python3中pathlib库的Path类的使用

用了很久的os.path,今天发现竟然还有这么好用的库,记录下来以便使用。 1.调用库 from pathlib import 2.创建Path对象 p = Path('D:/python/1.py') print(p) #可以这么使用,相当于os.path.join() p1 = Path('D:/python') p2 = p1/'123' print(p2) 结果 D:\...

AManFromEarth的博客 4万+

Abaqus滞回问题求解—浆锚连接装配式剪力墙滞回模拟

当下土木工程研究生,多数都在从事装配式混凝土构件安全或装配式混凝土构件连接节点力学性能的研究。研究这类问题,几乎脱离不开对有限元软件的使用,Abaqus求解能力非常强大,但模型处理能力相对较弱。装配式混凝土结构的有限元计算与传统现浇结构相比,其节点处理起来相对复杂,计算结果往往需要凸显出连接节点力学特性,所以对建模精程度的要求较高。所以向大家介绍一款工具—HyperMesh软件(一下简称Hm),它是专业的有限元前处理工具,用于处理装配式混凝土构件或连接节点有限元模型比较合适。这篇文章主要介绍如何利用Hm处理

qq_31918049的博客 2901

python笔记72 - 使用pathlib替代os.path

前言 如果你还在为操作文件路径烦恼,不会使用os.path模块,那么是时候试试pathlib了。 pathlib 库 pathlib 库从 python3.4 开始,到 python3.6 已经比较成熟。如果你的新项目可以直接用 3.6 以上,建议用 pathlib。相比于老式的 os.path 有几个优势: 老的路径操作函数管理比较混乱,有的是导入 os, 有的又是在 os.path 当中,而新的用法统一可以用 pathlib 管理。 老用法在处理不同操作系统 win,mac 以及 linux 之间很吃

qq_27371025的博客 1023

NLP高频面试题(一)——Transformer的基本结构、作用和代码实现

本文详细介绍了Transformer模型的基本结构和PyTorch代码实现过程。首先解析了Transformer的核心组成部分,包括嵌入层、多头自注意力机制、位置编码、前馈神经网络、编码器和解码器等模块,并通过清晰的代码示例逐步展示了如何在PyTorch中构建完整的Transformer模型。文末提供了一个可运行的简单示例,帮助读者快速理解并实践Transformer的核心原理与实现方法。

WeLearnNLP 1026

危废焚烧优化控制系统设计与实现:基于数据驱动的控制参数预测

本文提出了一种基于数据驱动的危险废物焚烧过程优化控制方法。系统利用历史运行数据和实时监测数据,通过深度学习模型预测关键控制参数,实现焚烧过程的智能化控制。系统采用Python开发,结合TensorFlow/PyTorch框架,构建了完整的数据采集、预处理、特征工程、模型训练和实时预测闭环系统。该系统能够处理多变量非线性关系,适应工况变化,从历史数据中学习最优控制策略,相比传统PID控制方法具有显著优势。论文详细介绍了系统架构、算法设计和实现细节,为危废焚烧过程的优化控制提供了有效解决方案。

huanghm88的专栏 206

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

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

Le0v1n 的博客 7171

DRM遇到的实际问题及领悟(3)

DRM遇到的实际问题及领悟(3)

phmatthaus的专栏 635

python os.path.exists通配符_Python3用pathlib模块替代os.path进行文件路径的操作

在 Python 3.4 之前和路径相关操作函数都放在 os 模块里面,尤其是os.path这个子模块,可以说os.path模块非常常用。而在 Python 3.4,标准库添加了新的模块 - pathlib,它使用面向对象的编程方式来表示文件系统路径。1.Path.cwd()和Path.home()Path.cwd() 返回一个新的表示当前目录的路径对象(和 os.getcwd() 返回的相同)...

weixin_39930144的博客 1566

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python3 标准库 pathlib 可替代 os.path.join

Python3 标准库 pathlib 可替代 os.path.join

wohu1104的专栏 758

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python3 pathlib 模块替代 os.path 获取文件路径

没时间整理,推荐一篇文章:《为什么你应该使用 pathlib 》 文章地址:https://treyhunner.com/2018/12/why-you-should-be-using-pathlib/

极客点儿 743

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

new file https 找不到路径_Python3用pathlib模块替代os.path进行文件路径的操作

本文使用 Zhihu On VSCode 创作并发布在 Python 3.4 之前和路径相关操作函数都放在 os 模块里面,尤其是os.path这个子模块,可以说os.path模块非常常用。而在 Python 3.4,标准库添加了新的模块 - pathlib,它使用面向对象的编程方式来表示文件系统路径。1.Path.cwd()和Path.home()Path.cwd() 返回一个新的表示当前目录...

weixin_39612726的博客 213

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

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

奔跑的蜗牛 844

替代left join方法_你应该使用pathlib替代os.path

本文首发于微信公众号「Python之美」(微信号python_cn): https://mp.weixin.qq.com/s/a19JmJOtSff2TqhTYaD8ig在Python 3.4之前和路径相关操作函数都放在os模块里面,尤其是os.path这个子模块,可以说os.path模块非常常用。而在Python 3.4,标准库添加了新的模块 - pathlib,它使用面向对象的编程方式来表示文...

weixin_39955351的博客 622

Python3中pathlib库的使用

简介 pathlib库在python3.4以后是python的内置库, Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径),基本上可以代替os.path来处理路径。 本文相对粗略的介绍pathlib基于windows的一些常用方法,unix等详细方法参考官方文档 基本使用 导入主类: In [1]: from pathli...

ammmao的博客 2275

Use pathlib.Path instead of os.path for Python3.6+

忍不住吐槽了一下os.path,并强力推荐使用Python3.4以后加入标准库的pathlib。1. 获取上级目录、上上级目录。2. 遍历某个路径下的某类文件。[庆祝] 打个广告:最新忙着个。项目提PR,欢迎各路英雄来怼~

jaket5219999的博客 545

忘掉python的os.path吧,pathlib巨好用

1. pathlib 取代os.path模块 从python3.4开始,pathlib正式成为标准库,旨在取代老旧的os.path模块和一些os模块中对系统路径的操作。pathlib提供了表示文件系统路径的类,而os.path提供的是各种操作路径的函数,如果你已经熟练的掌握了os.path,那么学习pathlib将非常容易。 从使用情况来看,pathlib的功能对编程人员更加友好,对系统路径的操作更便捷。 2. 纯路径与具体路径 下图是pathlib所提供的类的继承关系 纯路径与具体路径的区别在于,具体路

KWSY2008的专栏 371

pathlib简介与使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34126557的博客 218

Python文件路径处理pathlib模块

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

cx1的博客 1732
上一篇: 软件开发技术文档编写规范(转)
下一篇: python定时执行任务
leaf13
博客等级 码龄8年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值