pathlib模块中包含的是一些类,它们的继承关系如图1所示。
图1 pathlib模块中类的组织结构
图1中,箭头连接的是有继承关系的两个类,以PurePosixPath和PurePath类为例,PurePosizPath继承自PurePath,即前者是后者的子类。
pathlib模块的操作对象是各种操作系统中使用的路径(例如指定文件位置的路径,包括绝对路径和相对路径)。这里简单介绍一下图1中包含的几个类的具体功能:
-
<李> PurePath类会将路径看做是一个普通的字符串,它可以实现将多个指定的字符串拼接成适用于当前操作系统的路径格式,同时还可以判断任意两个路径是否相等。注意,使用PurePath操作的路径,它并不会关心该路径是否真实有效。李>
<李> PurePosixPath和PureWindowsPath是PurePath的子类,前者用于操作UNIX(包括Mac OS X)风格的路径,后者用于操作窗户风格的路径。李>
<李>路径类和以上3个类不同,它操作的路径一定是真实有效的.Path类提供了判断路径是否真实存在的方法。李>
<李> PosixPath和WindowPath是路径的子类,分别用于操作Unix (Mac OS X)风格的路径和窗户风格的路径。李>
注意,UNIX操作系统和Windows操作系统上,路径的格式是完全不同的,主要区别在于根路径和路径分隔符,UNIX系统的根路径是斜杠(/),而Windows系统的根路径是盘符(C:); UNIX系统路径使用的分隔符是斜杠(/),而窗户使用的是反斜杠(\).
<强> PurePath类的用法强>
PurePath类(以及PurePosixPath类和PureWindowsPath类)都提供了大量的构造方法,实例方法以及类实例属性,供我们使用。
<强> PurePath类构造方法强>
需要注意的是,在使用PurePath类时,考虑到操作系统的不同,如果在UNIX或Mac OS X系统上使用PurePath创建对象,该类的构造方法实际返回的是PurePosixPath对象;反之,如果在Windows系统上使用PurePath创建对象,该类的构造方法返回的是PureWindowsPath对象。
当然,我们完全可以直接使用PurePosixPath类或者PureWindowsPath类创建指定操作系统使用的类对象。
例如,在Windows系统上执行如下语句:
从pathlib导入*引用>
#创建PurePath,实际上使用PureWindowsPath
路径=PurePath (my_file.txt)
print(类型(路径))
程序执行结果为:
<代码> & lt;类pathlib.PureWindowsPath的祝辞代码>
显然,在Windows操作系统上,使用PurePath类构造函数创建的是PureWindowsPath类对象。
读者可自行尝试在UNIX或者Mac OS X系统上执行该程序。
除此之外,PurePath在创建对象时,也支持传入多个路径字符串,它们会被拼接成一个路径格式的字符串,例如:
从pathlib导入*引用>
#创建PurePath,实际上使用PureWindowsPath
路径=PurePath (http:,“c.biancheng.net”, python)
print(路径)
程序执行结果为:
python c.biancheng.nethttp: \ \
可以看的到,由于本机为Windows系统,因此这里输出的是适用于Windows平台的路径。如果想在Windows系统上输出UNIX风格的路径字符串,就需要使用PurePosixPath类。例如:
从pathlib导入*引用>
路径=PurePosixPath (http:,“c.biancheng.net”, python)
print(路径)
程序执行结果为:
http:/c.biancheng.net/python
值的一提的是,如果在使用PurePath类构造方法时,不传入任何参数,则等同于传入点“。”(表示当前路径)作为参数例。如:
从pathlib导入*引用>
路径=PurePath ()
print(路径)
路径=PurePath (“。”)
print(路径)
程序执行结果为:
。
.另外,如果传入PurePath构造方法中的多个参数中,包含多个根路径,则只会有最后一个根路径及后面的子路径生效,例如:
从pathlib导入*引用>
路径=PurePath (“C://?“D://薄ⅰ癿y_file.txt”)
print(路径)
程序执行结果为:
D: \ my_file.txt
注意,对于Windows风格的路径,只有盘符(如C、D等)才能算根路径。
Python pathlib模块使用方法及实例解析