Python 标准库之pathlib,路径操作

news2024/12/23 16:09:31

背景

pathlib 标准库是在 Python3.4 引入,到现在最近版 3.11 已更新了好几个版本,主要是用于路径操作,相比之前的路径操作方法 os.path 有一些优势,有兴趣的同学可以学习下

**官方文档:**https://docs.python.org/zh-cn/3/library/pathlib.html
官方pathlib图片

小编环境

import sys

print('python 版本:',sys.version.split('|')[0])   #python 版本: 3.11.4

主要方法、函数

该模块中主要使用的是 Path

  • 导入模块
from pathlib import Path
  • 获取当前工作目录
Path.cwd()   #WindowsPath('D:/桌面/Python/标准库')
  • 获取用户 home 目录
Path.home()   #WindowsPath('C:/Users/admin')
  • 获取绝对路径
file = Path('pathlib_demo1.py')
print(file)   #WindowsPath('pathlib_demo1.py')
file.resolve()  #WindowsPath('D:/桌面/Python/标准库/pathlib_demo1.py')
  • 获取文件属性
file = Path('pathlib_demo1.py')
print(file)   #WindowsPath('pathlib_demo1.py')

file.stat()  
'''
os.stat_result(st_mode=33206, st_ino=1970324837176895, st_dev=2522074357, 
st_nlink=1, st_uid=0, st_gid=0, st_size=273, 
st_atime=1695642854, st_mtime=1695611301, st_ctime=1695611241)
'''

#文件大小
file.stat().st_size   #273B

#最近访问时间 access ,It represents the time of most recent access 
file.stat().st_atime  #1695625134.9083948

#创建时间 create,It represents the time of most recent metadata change on Unix and creation time on Windows.
file.stat().st_ctime  #1695611241.5981772

#修改时间  modify,It represents the time of most recent content modification
file.stat().st_mtime  #1695611301.1193473
  • 查看当前工作目录文件及文件夹
for f in path.iterdir():
    print(f)
    print('is_file:',f.is_file())  #判断是否为文件
    print('is_dir:',f.is_dir())   #判断是否为文件夹
    print('='*30)

'''
D:\桌面\Python\标准库\.ipynb_checkpoints
is_file: False
is_dir: True
==============================
D:\桌面\Python\标准库\pathlib.ipynb
is_file: True
is_dir: False
==============================
D:\桌面\Python\标准库\pathlib_demo1.py
is_file: True
is_dir: False
==============================
'''
  • 路径的各个组成部分
file=Path('D:\桌面\Python\标准库\pathlib_demo1.py')

file.name  #'pathlib_demo1.py'
file.stem  #'pathlib_demo1'
file.suffix   #'.py'
file.parent   #WindowsPath('D:/桌面/Python/标准库')
file.anchor  #'D:\\'
file.parent.parent  #WindowsPath('D:/桌面/Python')

#获取所有的父级路径,层层递进
list(file.parents)
'''
[WindowsPath('D:/桌面/Python/标准库'),
 WindowsPath('D:/桌面/Python'),
 WindowsPath('D:/桌面'),
 WindowsPath('D:/')]
'''
  • 路径拼接
    支持2种方式
#第1种方式:使用 /
Path.home() / 'dir' / 'file.txt'  #WindowsPath('C:/Users/admin/dir/file.txt')

#第2种方式:使用方法
Path.home().joinpath('dir', 'file.txt')  #WindowsPath('C:/Users/admin/dir/file.txt')
  • 判断路径、文件是否存在
#当前文件件里面是否存在 子目录 archive/demo.txt 文件
Path("archive/demo.txt").exists()  #False

#当前文件件里面是否存在 二级子目录 dir/subdir  
Path('dir/subdir').exists()   #True

#当前文件件里面是否存在 pathlib_demo1.py 文件
Path("pathlib_demo1.py").exists()  #True

以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应用架构的演进:亚马逊的微服务实践

当你在亚马逊上购物时,或许不会想到,你看到的这个购物网站,其背后技术架构经历了什么样的变迁与升级。 还记得上世纪 90 年代,那个只卖书的网上书店吗?那时的亚马逊,不过是一个架构简单的网站,所有的功能都堆积在一个庞大的软件堡垒里。随着更多业务的增加、更新和迭代,这个软…

RS232,485,422的定义及区别

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。 由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。串口按电气标准及协议来划分,包括RS232、RS422、R…

JavaScript位运算的妙用

位运算的妙用: 奇偶数, 色值换算,换值, 编码等 位运算的基础知识: 操作数是32位整数自动转化为整数在二进制下进行运算 一.按位与& 判断奇偶数: 奇数: num & 1 1偶数: num & 1 0 基本知识: 用法:操作数1 & 操作数2规则:有 0 则为…

WhaleStudio 分钟级构建 AI 模型,强大 Ops 能力简化模型调度与部署

什么是机器学习(ML)? 它有什么作用 机器学习(ML)是人工智能(AI)的一个子集,通过算法发现数据中的通用模式,并根据持续不断的训练来优化调整最终结果。ML模型从过去的经验中学习,并根据已有的经验进行预测。例如,现在的电商已不再…

外贸人如何一眼识别骗子

最近收到很多客户在平台上直接发过来一些压缩包,然后说自己是和某个国家的政府签订的合作方案,请查看这些压缩包里的图纸和附件是否能够提供,麻烦核算价格等等。 当我看到客户发过来这些东西的时候,第一反应不是打开附件或者是来…

React中为啥key不可以使用索引值index?(超详细版本)

索引值index与唯一标识符id区别 1、索引值index是表示列表中每个元素的位置; 特点:从0开始,在列表变化时react重新分配索引值,造成索引值与元素标签的对应关系不是稳定的一一对应。 const list ["apple", "bana…

掌握Vim编辑器,轻松提升编程效率

1. 什么是VIM Vim (Vi improved)是从 Vi 发展出来的一个文本编辑器,简单的来说,Vi 是老式的文本处理器,功能已经很齐全了,但还是有可以进步的地方。 之后,Vim 之父 Bram Moolenaar 在 Vi 的源代码基础上进行了修改&a…

链式二叉树(二叉树看这一篇就够了)

顾名思义就是使用链式存储来实现的二叉树,因为二叉树是递归定义的,所以二叉树的实现中,都是会使用递归来完成.这里面需要一些前置的二叉树理论知识,对这部分不是很理解的可以先看下这篇二叉树的概念. 下面开始进入正题了: 1.二叉树的创建 假定现有"ABD##E#H##CF##G##&quo…

PDF文件压缩软件 PDF Squeezer mac中文版​软件特点

PDF Squeezer mac是一款macOS平台上的PDF文件压缩软件,可以帮助用户快速地压缩PDF文件,从而减小文件大小,使其更容易共享、存储和传输。PDF Squeezer使用先进的压缩算法,可以在不影响文件质量的情况下减小文件大小。 PDF Squeezer…

[Linux]多线程编程

[Linux]多线程编程 文章目录 [Linux]多线程编程pthread_create函数pthread_join函数pthread_exit函数pthread_cancel函数pthread_self函数pthread_detach函数理解线程库和线程id Linux操作系统下,并没有真正意义上的线程,而是由进程中的轻量级进程&#…

vue3 踩坑记(汇总)

1、在 vue3 中,GET 请求接口时,传入一个数组,默认是以“xxx[]: 1, 2, 3”的形式传递的,报错:“400 Bad Request” 解决方案: 传参时,需要将数组字符串化,比如:ids: sele…

二维码智慧门牌管理系统:提升社会治理效率的利器

文章目录 前言一、技术背景与特点二、数据准确性和一致性三、综合服务平台四、应用领域 前言 在当今科技不断发展的时代,我们的生活正逐渐数字化和智能化。近期,一种名为“二维码智慧门牌管理系统”的新型技术引起广泛关注。这一系统的出现不仅为我们的…

软件测试之银行测试,银行测试YYDS

为什么要做金融类软件测试 举个例子,比如银行的软件测试工程师,横向和互联网公司的测试人员比较来说,工资比较稳定,加班很少甚至没有,业务稳定。 实在是测试类岗位中的香饽饽! 同时,我也准备了…

如何使用ArcGIS Pro制作标准地图样式国界

相信大家都浏览过标准地图服务提供的标准地图,不知道你有没有想过尝试制作里面的国界,这里为大家介绍一下制作方法,希望能对你有所帮助。 制作已定国界 在地图数据内,国界分为已定国界、未定国界和海岸线,我们先对已定…

一文详解:什么是进销存管理系统?2023年top10进销存管理系统大推荐!

进销存管理系统是什么?进销存管理系统的优势在哪里?进销存管理系统都能为企业提供什么?有哪些便宜适合的进销存管理系统?本文将带大家深入浅出的聊聊进销存管理系统,并且为大家提供2023年十大进销存管理系统大盘点&…

企业简化客户服务的5种方法

在现代商业中,提供优质客户服务是企业能否成功的关键所在。为了满足客户的需求,企业需要保证客户服务的质量和效率。而许多公司却发现,随着公司的发展,客户服务的过程变得越来越复杂。许多企业陷入了自己制造的困境,面…

简易磁盘自动监控服务

本文旨在利用crontab定时任务(脚本请参考附件)来监控单个服务节点上所有磁盘使用情况,一旦超过既定阈值则会通过邮件形式告警相关利益人及时介入处理。 1. 开启SMTP服务 为了能够成功接收告警信息,需要邮件接收客户都安开启SMTP服务。简要流程请参考下…

燃尽图是什么?如何用它提升敏捷项目流程?

**敏捷项目管理**的核心是透明度和持续改进。燃尽图是轻松实现这两点的秘密武器。这种动态的可视化工具能有效地说明团队在一段时间内的进展情况,突出显示剩余的工作,并揭示你的团队是否在实现目标的正轨上。 敏捷项目管理中的燃尽图 燃尽图是敏捷项目…

【git入门教程--基于gitee】

1.git 下载安装 首先下载windows版本的git安装包 https://git-scm.com/download/win 我这里选择64位 windows版本,大部分人用的也是这个版本。安装过程很简单,基本都是下一步再下一步。 2.用户配置 git安装完成之后,在电脑文件夹的任意位…

python程序主动退出进程的方式:五种方式总有一种适合你

一、使用os.kill() os.kill()是一种向进程发送信号的方法,可以用来强制结束一个进程的运行。如果你的程序中包含有线程,用这种方式绝对没错!当使用os.kill()方法结束一个进程时,需要指定该进程的PID(进程号&#xff0…