当前位置:网站首页 > 编程语言 > 正文

pathlib2(pathlib2功能)



  • pure paths 路径计算操作没有IO功能
  • concrete paths 路径计算操作和IO功能

从上图可以看出:PurePath 类是所有类的基类




基础使用

列出子目录
 
  

列出指定类型的文件

 

路径拼接

在目录树中移动

使用`/`来拼接路径

>>> p = Path('/etc')>>> q = p / 'init.d' / 'reboot'>>> qWindowsPath('/etc/init.d/reboot')>>> q.resolve()WindowsPath('C:/etc/init.d/reboot')>>> print(q)etcinit.d eboot>>> print(q.resolve())C:etcinit.d eboot>>>



查询路径的属性

>>> q.exists() # Unix 里面这个会返回TrueFalse>>> q.is_dir()False>>>


打开一个文件

>>> with q.open() as f: f.readline()...FileNotFoundError: [Errno 2] No such file or directory # 如果不存在则报错


Pure paths 纯路径

纯路径对象提供了

不实际访问文件系统

的路径处理操作。有三种方式来访问这些类。


class pathlib.

PurePath(*pathsegments)

 
 

参数为空时,返回当前路径

 

当同时指定多个绝对路径,则使用最后一个

 

在 Windows 路径中,改变本地根目录并不会丢弃之前盘符的设置

 

双斜线和单独的点都会被消除,但是双点 (‘..’) 不会,以防改变符号链接的含义。

 

class pathlib.

PurePosixPath(*pathsegments)

 

其他操作与 PurePath 相同




class pathlib.PureWindowsPath(*pathsegments)
 

其他操作与 PurePath 相同

无论你正运行什么系统,你都可以实例化这些类,因为它们提供的操作不做任何系统调用


通用性质

路径是不可变并可哈希的。相同风格的路径可以排序与比较。

 

不同风格的路径比较得到不等的结果并且无法被排序:

 

运算符

斜杠操作符有助于操作子路径

 

文件对象可用于任何接受 os.PathLike 接口实现的地方

 

路径的字符串表示法

 

访问路径独立组件

可以使用以下特征属性:

PurePath.parts

返回一个元组,可以访问路径的多个组件

 

方法和特征属性

可以使用以下特征属性:

PurePath.drive

一个表示驱动器盘符或命名的字符串

 

PurePath.

root

一个表示(本地或全局)的字符串

 

PurePath.

anchor

驱动器和根的联合

 

PurePath.

parents

一个不可变序列,提供对路径逻辑祖先的访问

 

PurePath.

parent

返回当前路径的父路径

 
                  

如果想要向上移动任意文件系统路径,推荐先使用 Path.resolve() 来解析符号链接以及消除 ".." 组件。


PurePath.name

一个表示最后路径组件的字符串,排除了驱动器与根目录

 

PurePath.

suffix

最后一个组件的文件扩展名

 

PurePath.

suffixes

路径的文件扩展名列表

 

PurePath.

stem

最后一个路径组件,除去后缀

 

PurePath.

as_posix()

返回使用正斜杠(/)的路径字符串

 

PurePath.

as_uri()

将路径表示为 file URL的格式。如果并非绝对路径,抛出 ValueError。

 

PurePath.

is_absolute()

返回此路径是否为绝对路径。如果路径同时拥有驱动器符与根路径(如果风格允许)则将被认作绝对路径。

 

PurePath.

is_reserved()

PureWindowsPath,如果路径是被 Windows 保留的则返回 True,否则 False。在 PurePosixPath,总是返回 False。

 

PurePath.

joinpath(*other)

调用此方法等同于将每个 other 参数中的项目连接在一起

 

PurePath.

match(pattern)

 

如果 pattern 是绝对的,则路径必须是绝对的,并且路径必须完全匹配:

 

PurePath.

relative_to(*other)

计算此路径相对

other

表示路径的版本。如果不可计算,则抛出 ValueError:

>>> p = PurePosixPath('/etc/passwd')>>> p.relative_to('/')PurePosixPath('etc/passwd')>>> p.relative_to('/etc')PurePosixPath('passwd')>>> p.relative_to('/usr')Traceback (most recent call last):File " 
                            
   
                              
                               
    
                              ", line 1, in 
                             
    
                               
                                 File "pathlib.py", line 694, in relative_to .format(str(self), str(formatted))) ValueError: '/etc/passwd' does not start with '/usr' ``` 
                                
PurePath. with_name(name) 返回一个新的路径并修改 name。如果原本路径没有 nameValueError 被抛出
 
PurePath. with_suffix(suffix) 返回一个新的路径并修改后缀 suffix。如果原本的路径没有后缀,新的 suffix 则被追加以代替。如果 suffix 是空字符串,则原本的后缀被移除: ```python >>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz') >>> p.with_suffix('.bz2') PureWindowsPath('c:/Downloads/pathlib.tar.bz2') >>> p = PureWindowsPath('README') >>> p.with_suffix('.txt') PureWindowsPath('README.txt') >>> p = PureWindowsPath('README.txt') >>> p.with_suffix('') PureWindowsPath('README') ```
Path 具体路径 具体路径是纯路径的子类。除了后者提供的操作之外,它们还提供了对路径对象进行系统调用的方法。
有以下三种方法可以实例化具体路径:

class pathlib.Path(*pathsegments)
一个 PurePath 的子类,此类以当前系统的路径风格表示路径(实例化为 PosixPath 或 WindowsPath):
 
class pathlib. PosixPath(*pathsegments)
 
class pathlib. WindowsPath(*pathsegments)
 
方法
除纯路径方法外,具体路径还提供以下方法。
classmethod Path.cwd()
返回一个新的表示当前目录的路径对象,和 os.getcwd() 返回的相同
 
classmethod Path. home() 返回一个表示当前用户根目录的新路径对象,和 os.path.expanduser() 构造含 ~ 路径返回的相同
 
Path. stat() 返回此路径的信息(类似于 os.stat())。
 
Path. chmod(mode) 改变文件的模式和权限,和 os.chmod() 一样:
 
Path. exists() 此路径是否指向一个已存在的文件或目录
 
Path. expanduser() 返回展开了根目录与的构造,和 os.path.expanduser() 一样:
 
Path. glob(pattern) 生成所有匹配 pattern 的文件
 “” 模式表示 此目录以及所有子目录 
 
Path. group() 返回拥有此文件的用户组。




Path.is_dir()
如果路径指向一个目录(或者一个指向目录的符号链接)则返回 True,如果指向其他类型的文件则返回 False
当路径不存在或者是一个破损的符号链接时也会返回 False







Path.is_file()
如果路径指向一个正常的文件(或者一个指向正常文件的符号链接)则返回 True,如果指向其他类型的文件则返回 False。
当路径不存在或者是一个破损的符号链接时也会返回 False







如果路径指向符号链接则返回 True, 否则 False。
如果路径不存在也返回 False







Path.is_socket()
如果路径指向一个 Unix socket 文件(或者指向 Unix socket 文件的符号链接)则返回 True,如果指向其他类型的文件则返回 False。
当路径不存在或者是一个破损的符号链接时也会返回 False







Path.is_fifo()
如果路径指向一个先进先出存储(或者指向先进先出存储的符号链接)则返回 True ,指向其他类型的文件则返回 False。
当路径不存在或者是一个破损的符号链接时也会返回 False







Path.is_block_device()
如果文件指向一个块设备(或者指向块设备的符号链接)则返回 True,指向其他类型的文件则返回 False。
当路径不存在或者是一个破损的符号链接时也会返回 False







Path.is_char_device()
如果路径指向一个字符设备(或指向字符设备的符号链接)则返回 True,指向其他类型的文件则返回 False。
当路径不存在或者是一个破损的符号链接时也会返回 False







Path.iterdir()
当路径指向一个目录时,产生该路径下的对象的路径
 
Path. mkdir(mode=0o777, parents=False, exist_ok=False) 创建目录




Path.open(mode='r', buffering=-1, encoding=None, errors=None, newline=None)
打开路径指向的文件
 
Path. owner() 返回拥有此文件的用户名。如果文件的 UID 无法在系统数据库中找到,则抛出 KeyError。




Path.read_bytes()
以字节对象的形式返回路径指向的文件的二进制内容:
 
Path. read_text(encoding=None, errors=None) 以字符串形式返回路径指向的文件的解码后文本内容
 
Path. rename(target) 使用给定的 target 将文件重命名
 
Path. replace(target) 使用给定的 target 重命名文件或目录。




Path.resolve(target)
将路径绝对化,解析任何符号链接。返回新的路径对象:
 
Path. rglob(pattern) 与给定模式前面添加''一样调用 Path.glob():
 
Path. rmdir() 移除此目录。此目录必须为空的。




Path.samefile(other_path)
返回此目录是否指向与可能是字符串或者另一个路径对象的 other_path 相同的文件。
 
Path. symlink_to(target, target_is_directory=False) 将此路径创建为指向 target 的符号链接。在 Windows 下,如果链接的目标是一个目录则 target_is_directory 必须为 true (默认为 False)。在 POSIX 下, target_is_directory 的值将被忽略。
 
Path. touch(mode=0o666, exist_ok=True) 将给定的路径创建为文件。
如果给出了 mode 它将与当前进程的 umask 值合并以确定文件的模式和访问标志。如果文件已经存在,则当 exist_ok 为 true 则函数仍会成功(并且将它的修改事件更新为当前事件),否则抛出 FileExistsError。







移除此文件或符号链接。如果路径指向目录,则用 Path.rmdir() 代替。




Path.write_bytes(data)
将文件以二进制模式打开,写入 data 并关闭:
 
Path. write_text(data, encoding=None, errors=None) 将文件以文本模式打开,写入 data 并关闭:
 































































































到此这篇pathlib2(pathlib2功能)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!





















































版权声明


相关文章:

  • point和pointat的区别(point at 和point on)2025-11-17 17:18:08
  • 打印控件未安装是什么意思(打印控件未安装是什么意思呀)2025-11-17 17:18:08
  • 游戏的分类有哪些,请举例说明(游戏的分类有哪些,请举例说明英语)2025-11-17 17:18:08
  • .yml是什么文件(yml是什么文件)2025-11-17 17:18:08
  • 双系统如何卸载另一个系统(双系统如何卸载另一个系统)2025-11-17 17:18:08
  • 虚拟gps定位下载安装(虚拟gps定位安卓模拟器下载)2025-11-17 17:18:08
  • 104规约协议(101规约和104规约的联系和区别)2025-11-17 17:18:08
  • 华为机考防作弊机制(华为机考怎么过)2025-11-17 17:18:08
  • 获取位置信息失败怎么解决(获取位置信息失败怎么解决苹果手机)2025-11-17 17:18:08
  • 发送验证码一直收不到(发送验证码一直收不到短信)2025-11-17 17:18:08
  • 全屏图片