首页 > 其他分享 >pathlib模块--面向对象的文件系统路径标准

pathlib模块--面向对象的文件系统路径标准

时间:2023-05-15 23:13:07浏览次数:37  
标签:返回 文件 PurePath -- 路径 pathlib 面向对象 Path

1 pathlib中的 path类

获取当前工作目录
Path.cwd()
注意P是大写
image

这个和os.getcwd()结果很类似


获取一个当前目录下的path对象
image

获取当前系统的home路径
image

根据给定参数的匹配模式,返回所有匹配到的文件
image
注意glob()返回的是一个生成器,是看不到具体内容的,可用sorted()或者list()或者for循环来查看具体的内容
image
glob()只会在指定的当前目录搜索
rglob则会在当前目录及其子目录下搜索

Path('pathlib_eg.py')
image
判断给定的文件或者目录是否存在
image

判断给定参数是否是一个正常的文件或者一个指向正常文件的符号链接
image
注意,这里如果路径或者文件不存在也是False

判断给定参数是否是一个正常的目录或者一个指向正常目录的符号链接
image
遍历目录,返回给定目录下所有对象的路径
image

读写文件 新建文件
read_text()
write_text()
toch()
open()
image
image

image

注意,read_text()和open()都能读取文件内容,但是read_text()是以字符串形式返回所有的文件内容,open()是返回一个对象,利用这个对象我们可以逐行输出或者其他形式输出文件内容

path.open(),和我们常用的open()内置函数功能是一样的

重命名
image

新建目录
image

Path类还有其他丰富的方法如
Path.chmod() 编辑文件权限
Path.group() 返回拥有此文件的用户组
Path.read_bytes() 以字节形式返回内容
等等

PurePath类

PurePath并不像Path那样会访问并操作系统里面的文件路径,我的理解是,它是用来构建一个符合当前系统的的路径,但是并不会访问和影响实际的路径
它下面有2个子类 PurePosixPath和PureWindowsPath
PurePosixPath用来构建non-Windows系统的文件路径
PureWindowsPath用来构建window系统的文件路径
PurePath构建的 路径在两个平台都可以使用,不知道该用哪一个子类时用PurePath就好
image
image
利用str() 可以返回一个标准的系统路径

方法和属性

返回给定路径的盘符
image

返回路径的根 root
image

返回路径的盘符和根
image

祖先路径及父路径
image

返回路径中的最后部分
image
等等
Path类也是PurePath类的子类 所以这些Path类对象也可以用这些子类
在网上看了其他人的介绍,patnlib中大家用得比较多的还是Path类,PurePath类我也没搞懂具体在工作中有什么应用

相对于拥有相似功能的os模块,pathlib相对比较简单易用,不必操作os与操作系统进行交互
最后 看下pathlib的组成类
image

标签:返回,文件,PurePath,--,路径,pathlib,面向对象,Path
From: https://www.cnblogs.com/MyRecords/p/17400329.html

相关文章

  • 离线安装python模块
    安装环境32位win7电脑+python3.7.5模块来源(1)https://www.lfd.uci.edu/~gohlke/pythonlibs(2)https://pypi.org/安装numpy-1.21.6——直接安装pandas-1.3.5——所需支持:numpy-1.21.6,cython-0.29.30,six-1.16.0,python-dateutil-2.8.2,pytz2023.3matplotlib-2.2.5——所需支持:n......
  • 暗室逢灯艰苦拉萨大家发
    python中的魔法方法  __init__:类实例化会触发classStudent():def__init__(self):print('类实例化会触发__init__方法')Student()#类实例化会触发__init__方法ViewCode   __str__:打印对象会触发classStudent:def__init__(self,name,......
  • android应用的记住密码与快速登录
    通过资料得知,可以通过三种方式实现,其中,数据库个人认为比较好实现,添加个字段即可,但觉得不太正规,同时,还得对表结构进行修改,所以,舍弃这种方法。通过SharedPreferences实现记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存......
  • mapreduce
     MapReduce是一种分布式计算模型,用于处理大规模数据集的并行计算。它是由Google首先提出,并在ApacheHadoop项目中得到广泛实现和应用的MapReduce模型的优势在于它的可扩展性和容错性。它可以在大规模的计算集群上并行处理数据,提供高性能和高可靠性。MapReduce适用于各种数据处......
  • NASM中的寄存器
    MASM(MicrosoftMacroAssembler)是一款汇编语言编译器,它使用Intel8086架构的汇编语言。以下是Intel8086架构中的寄存器及其主要用途:数据寄存器:AX-累加器寄存器。这是主要的寄存器,用于执行大多数的算术和逻辑操作。BX-基址寄存器。通常用于间接寻址。CX-计数......
  • java面向对象
    java面向对象编程面向对象思想:物以类聚,分类的思维模式。思考问题首先会解决问题需要那些分类适合处理复杂的问题,适合多人的协作问题面向对象的本质:以类的方式组织代码,以对象的组织(封装)数据特征:抽象三大特性:封装,继承,多态static加了static的方法可以通过类名直接调用......
  • 换分币
    1.问题描述将5元的人民币兑换成1元,5角和1角的硬币,共有多少种不同的兑换方法2.问题分析都按角来算,设变量x,y,z分别代表1元,5角,1角由题目的要求,可以得到10*x+5*y+z=503.算法设计问题分析中得到了一个不定方程,显然不定方程会有多组解。根据题意将它们所有可能取值的组合代入方程......
  • SpringMVC快速复习(超详细)
    目录一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建springMVC的配置文件6、测试HelloWorlda>实现对首......
  • Docker CLI docker compose top常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • Python_mac在编辑~/.bash_profile文件时,导致所有命令都不能用了
    原因:~/.bash_profile文件改坏了操作:1.在终端输入exportPATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin",命令暂时可以用了2.在终端输入open-e~/.bash_profile在文本编辑器里面打开.bash_profile文件3.检查修改配置文件问题,然后保存,由于本人是bas......