首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一分钟学一个 Python 标准库之 Pathlib

一分钟学一个 Python 标准库之 Pathlib

作者头像
爬虫技术学习
发布于 2023-03-06 06:41:01
发布于 2023-03-06 06:41:01
40400
代码可运行
举报
文章被收录于专栏:爬虫技术学习爬虫技术学习
运行总次数:0
代码可运行

相对于 os.path 来说,Pathlib 极大地简化了路径相关的操作。举个例子来说:

获取当前文件路径下的 default.yaml 文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os

os.path.join(os.path.dirname(__file__), "default.yaml")

只需要:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pathlib import Path

Path(__file__).parent / "default.yaml"

不难看出,pathlib 有几个优点:

  1. 字符少了很多,出 bug 的地方就少了很多;
  2. 和操作系统一样,pathlib 直接使用路径分隔符 / 来操作,而不是 join 的两个参数;
  3. 非常符合直觉,从左到右阅读。而 os.path 使用函数参数,需要来回跳跃理解。相比之下,Pathlib 阅读起来很清晰。

Python3 标准库中所有接受 str 作为路径参数的地方,现在都可以接受一个 path 对象了。如果你使用的第三方库只接受 str 作为参数, 可以通过 path_str = str(path) 来转化一下。

Pathlib 的其他常用方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pathlib import Path

cwd = Path.cwd()  # 获取当前目录
home = Path.home()  # 获取家目录,比如 /home/ubuntu
path = Path("/home/yifei")  # 创建一个新的 path 对象

path.is_dir()  # 是否是目录
path.is_file()  # 是否是普通文件
path.exist()  # 路径是否存在
path.resolve()  # 解析成绝对路径,比如 Path(".").resolve() 相当于 Path.cwd()

path.mkdir(parent=True, exists_ok=True) # 类似 mkdir -p

# 遍历目录
for child in path.iterdir():
    print(child)

# 除此之外,还有几个很甜的方法,省去了 with open 语句
path = Path("/home/ubuntu/readme.txt")
text = path.read_text()
path.write_text(text)

path = Path("/home/ubuntu/image.png")
image = path.read_bytes()
path.write_bytes(image)

>>> path
PosixPath('/home/ubuntu/test.md')
>>> path.name
'test.md'
>>> path.stem
'test'
>>> path.suffix
'.md'
>>> path.parent
PosixPath('/home/ubuntu')
>>> path.parent.parent
PosixPath('/home')
>>> path.anchor
'/'

在这个注意力涣散的年代,想要经常写一些长篇大论的帖子实在太难了,可能一个月才能憋出一篇。不如分享写简单但是有用的知识点,或许还能经常更新。

以上就是全部内容啦。

参考

  1. https://realpython.com/python-pathlib/
  2. https://docs.python.org/3/library/pathlib.html
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爬虫技术学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python笔记72 - 使用pathlib替代os.path
如果你还在为操作文件路径烦恼,不会使用os.path模块,那么是时候试试pathlib了。
上海-悠悠
2022/03/03
9160
python笔记72 - 使用pathlib替代os.path
Python - 超好用的第三方库pathlib,快速获取项目中各种路径
之前曾介绍过Python的os库详细使用方式,具体可看看这篇博文:https://www.cnblogs.com/poloyy/p/12341231.html
小菠萝测试笔记
2020/06/09
1.2K0
Python - 超好用的第三方库pathlib,快速获取项目中各种路径
你还在用 os.path?快来感受一下 pathlib 给你带来的便捷吧!
pathlib 是Python内置库,Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类在纯路径之间划分,纯路径提供纯粹的计算操作而没有I / O,以及具体路径,它继承纯路径但也提供I / O操作。
崔庆才
2018/12/17
9401
python遍历文件夹os.path与pathlib
首先我们来一个需求,这个函数接受文件夹的名称作为输入参数,返回该文件夹中文件的路径,以及其包含文件夹中文件的路径。
Tim在路上
2020/08/05
2.3K0
python pathlib模块的基本使用和总结
相比常用的 os.path而言,pathlib 对于目录路径的操作更简介也更贴近 Pythonic。但是它不单纯是为了简化操作,还有更大的用途。
叶庭云
2020/09/17
3.1K0
python   pathlib模块的基本使用和总结
python 文件操作新姿势 pathlib模块的详细使用
相比常用的 os.path而言,pathlib 对于目录路径的操作更简介也更贴近 Pythonic。但是它不单纯是为了简化操作,还有更大的用途。 pathlib 是Python内置库,Python 文档给它的定义是:The pathlib module – object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。
叶庭云
2022/05/09
7110
python 文件操作新姿势   pathlib模块的详细使用
一文去掌握python 中pathlib库
在python中,我们知道常用的路径的是os模块,这里给大家介绍一个新的模块-pathlib。
雷子
2022/05/21
1.1K0
一文去掌握python 中pathlib库
求求你,别用 os.path 了
前段时间,在使用新版本的 Django 时,我发现了 settings.py 的第一行代码从
somenzz
2021/05/18
7210
求求你,别用 os.path 了
用pathlib进行Python中的文件路径处理
本文介绍Python中的文件路径处理方法,从字符串连接、os.path.join()到Python3中处理文件路径的简单方法:pathlib。
MeteoAI
2019/07/24
4.2K0
几个被淘汰的Python库,请不要再用!
随着每个 Python 版本的发布,都会添加新模块,并引入新的更好的做事方式,虽然我们都习惯了使用好的旧 Python 库和某些做事方式,但现在也时候升级并利用新的和改进的模块及其特性了。
周萝卜
2023/08/21
2870
几个被淘汰的Python库,请不要再用!
附实战代码|告别OS模块,体验Python文件操作新姿势!
相比常用的 os.path而言,pathlib 对于目录路径的操作更简介也更贴近 Pythonic。但是它不单纯是为了简化操作,还有更大的用途。
刘早起
2020/11/23
6120
附实战代码|告别OS模块,体验Python文件操作新姿势!
小说python的路径操作
在日常编码中,常常会有这些操作 在当前目录或用户目录下新建一个配置文件, 获取一个文件的路径或上级目录 这些都涉及路径操作 相信大家都使用过`os.path`来处理过,这个痛苦我想"谁用谁知道吧" 今天的主角`pathlib`就是来解决痛苦的... pathlib简介 pathlib是跨平台的、面向对象的路径操作库, pathlib就是对os.path进行了封装,提供了一个便捷的,面向对象的操作方式, 相对os.path作为string对象需要进行众多繁琐的操作, 它才真正是for humans pyth
用户2196567
2018/07/02
9230
pathlib:Python面向对象的文件路径处理
Pathlib库提供了一个面向对象的API来解析,建立,测试和处理文件名和路径,而不是使用底层字符串操作。
luckpunk
2023/09/28
5100
pathlib:Python面向对象的文件路径处理
Python 自动化指南(繁琐工作自动化)第二版:九、读取和写入文件
一个文件有两个关键属性:文件名(通常写成一个单词)和路径。路径指定文件在计算机上的位置。例如,我的 Windows 笔记本电脑上有一个文件名为project.docx的文件,路径为C:\Users\Al\Documents。最后一个句点之后的文件名部分称为文件的扩展名,它告诉您文件的类型。文件名project.docx为 Word 文档,Users、Al、Documents均是文件夹(也称目录)。文件夹可以包含文件和其他文件夹。例如,project.docx在Documents文件夹中,该文件夹在Al文件夹中,该文件夹在Users文件夹中。图 9-1 显示了该文件夹的组织结构。
ApacheCN_飞龙
2023/04/04
4K0
Python 自动化指南(繁琐工作自动化)第二版:九、读取和写入文件
Python IO
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
职场亮哥
2020/10/10
1.1K0
深度对比Python中4大文件处理库(os、shutil、glob、pathlib)
os库应该是使用频率最高的一个文件处理库,但是不得不说Python中还有几个其它的文件处理库,像shutil库、glob库、pathlib库,它们可以说是相互补充,有着自己好用的方法。黄同学亲切的将它们合称为Python文件处理库的四大天王。
快学Python
2021/12/07
8.6K0
深度对比Python中4大文件处理库(os、shutil、glob、pathlib)
python基础—pathlib模块
这里说下pathlib模块,只要python版本大于3.4 都自带标准库pathlib
dogfei
2020/07/31
3980
Python:使用opennsfw2对图片/视频进行鉴黄识别
使用雅虎开源的 TensorFlow 2 Open-NSFW 模型,NSFW:not safe for work,工作场所不宜
Freedom123
2024/03/29
1.9K0
Python生成目录树
在 windows 系统中,有一个 CMD 指令可以生成目录树,该条指令是 "tree" 。
王强
2018/08/09
5.5K0
Python生成目录树
真香!Python十大文件骚操作!!
日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘。
Sam Gor
2020/12/16
1K0
相关推荐
python笔记72 - 使用pathlib替代os.path
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档