您的位置:首页 > 其它

pathlib的常用方法

2020-03-31 16:44 302 查看

  patnlib-面向对象的文件系统路径

  pathlib模块提供了一个面向对象API来解析、建立、测试和处理文件名和路径,而不是像os.path那向使用底层字符串,进行操作。

  但是此方法与os.path有许多共通之处,请看os.path.join了解详情。

  一、建立路径

  Path()函数

  要实例化一个新路径,可以提供一个字符串作为第一个参数。要创建一个新路径来指示相对于已有路径的值,可以使用 '/'操作符扩展路径。这个操作符的参数可以是字符串,也可以是路径对象。

  from pathlib import Path

  p = Path('C:\\Users\\Administrator\\Desktop')

  print(p)

  p = p / 'aa.txt'

  print(p)

  输出结果:

  C:\Users\Administrator\Desktop

  C:\Users\Administrator\Desktop/aa.txt

  拼接符 ‘/’ 有以下三种操作:

  Path对象 / Path对象

  Path对象 / 字符串

  字符串 / Path对象

  此操作与os.path.join相似!对os.path.join有疑问,可参考os.path.join

  二、解析路径

  路径对象提供了一些方法和属性可以从路径名中抽取出部分值。例如,parts属性可以生成根据路径分隔符值解析得到的一个路径段序列。

  1、分解parts

  >>>from pathlib import Path

  >>>p = Path('C:\\Users\\Administrator\\Desktop')

  >>>print(p.parts)

  ('C:\\', 'Users', 'Administrator', 'Desktop')

  parts属性,可以返回路径中的每一部分.

  2、父目录parent

  有两种办法可以从一个给定的路径对象在文件系统层次结构上“向上”导航。这里直接看代码更直观。

  >>>from pathlib import Path

  >>>p = Path('C:\\Users\\Administrator\\Desktop')

  >>>print(p.parent)

  C:\Users\Administrator

  >>>print(p.parent.parent)

  C:\Users

  parents是一个迭代器,每调用一次,目录向上一次。

  >>>for x in p.parents:

  print(x)

  C:\Users\Administrator

  C:\Users

  C:\

  这个例子迭代处理parents属性,并打印成员值。

  3、name属性、suffix属性、stem属性

  >>>from pathlib import Path

  >>>p = Path('C:\\Users\\Administrator\\Desktop')

  >>>print('{!s:<15} : {!s:>15}'.format('path', p))

  >>>print('{!s:<15} : {!s:>15}'.format('name', p.name))

  >>>print('{!s:<15} : {!s:>15}'.format('suffix', p.suffix))

  >>>print('{!s:<15} : {!s:>15}'.format('stem', p.stem))

  path : C:\Users\Administrator\Desktop\aa.txt

  name : aa.txt郑州看妇科那个医院好 http://mobile.120zzzy.com/

  suffix : .txt

  stem : aa

  name属性:包含路径的最后一部分,即最后一个路径分隔符后面的内容(与os.path.basename()生成的值相同)

  suffix属性:目录中最后一个部分的扩展名

  stem属性:目录最后一个部分,没有后缀

  另外还有这两个属性:

  with_name(name) :替换目录最后一个部分并返回一个新的路径

  with_suffix(suffix) :替换扩展名,返回新的路径,扩展名存在则不变

  4、home()、cwd()

  >>>from pathlib import Path

  >>>Path.home()

  WindowsPath('C:/Users/Administrator')

  >>>Path.cwd()

  WindowsPath('C:/Users/Administrator')

  判断路径的类型

  返回类型为布尔值:

  is_dir() 是否是目录

  is_file() 是否是普通文件

  >>>from pathlib import Path

  >>>p = Path('C:/Users/Administrator')

  >>>p.is_dir()

  True

  >>>p1 = p / 'text.txt'

  >>>p1.is_file()

  False

  resolve() 返回一个新的路径,这个新路径就是当前Path对象的绝对路径

  exists()属性:该路径是否指向现有的目录或文件

  >>>Path('C:/Users/Administrator').exists()

  True

  创建目录及文件

  mkdir

  mkdir(parents=False,exist_ok=False) 创建目录

  parents:是否创建父目录,True等同mkdir -p;False时,父目录不存在,则抛出FileNotFoundError

  exist_ok:在3.5版本加入。False时,路径存在,抛出FileExistsError;True时,FileExistsError被忽略

  >>> p = Path('C:/Users/Administrator/Desktop/')

  >>> p = p / 'test' / 'test1'

  >>> p.mkdir(parents=True,exist_ok=True) # 在桌面上创建test目录,test内创建test1目录

  touch

  touch(exist_ok=True) 创建一个文件

  as_uri() 将路径返回成URI(Uniform Resource Identifier,统一资源标识符,是一个用于标识某一互联网资源名称的字符串)


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: