Python路径操作pathlib
编辑
11
2025-05-13
pathlib 模块提供了一种面向对象的方式来处理文件系统路径,使得路径操作更加直观和健壮。pathlib.Path 类根据操作系统提供具体的路径操作功能。
以下是 pathlib.Path 的一些常用方法:
获取路径信息
anchor: 返回路径的锚定部分(例如:Windows 的 'C:\',Unix 的 '/')。name: 返回路径的最后一个组件(文件名或目录名)。stem: 返回路径的最后一个组件,不包括扩展名。suffix: 返回路径的最后一个组件的扩展名(例如:'.txt', '.tar.gz')。suffixes: 返回路径的最后一个组件的所有扩展名组成的列表。parent: 返回表示路径的父目录的新 Path 对象。parents: 返回包含路径所有父目录的迭代器。parts: 返回路径的每个组件作为字符串组成的元组。drive: 在 Windows 上返回驱动器号(例如:'C:'),在 Unix 上返回空字符串。root: 返回路径的根目录部分(例如:Windows 的 '\',Unix 的 '/')。
路径组合与比较
joinpath(*other): 将指定的路径组件连接到当前路径,返回新的 Path 对象。通常使用/运算符进行路径连接。relative_to(*other): 计算当前路径相对于other的相对路径并返回。
路径解析与规范化
resolve(strict=False): 解析路径中的软链接,并返回绝对路径。如果strict=True且路径不存在,则会引发错误。absolute(): 返回路径的绝对路径。与resolve()不同,它不解析软链接。
文件或目录信息检查
exists(): 如果路径指向现有文件或目录,则返回True。is_dir(): 如果路径是目录,则返回True。is_file(): 如果路径是文件,则返回True。is_symlink(): 如果路径是软链接,则返回True。is_socket(): 如果路径是套接字,则返回True。is_fifo(): 如果路径是 FIFO(命名管道),则返回True。is_block_device(): 如果路径是块设备,则返回True。is_char_device(): 如果路径是字符设备,则返回True。is_absolute(): 如果路径是绝对路径,则返回True。is_relative(): 如果路径是相对路径,则返回True。match(pattern): 如果路径匹配指定的 shell 风格模式,则返回True。stat(): 返回路径对应的文件或目录的 stat 信息。
文件或目录操作
iterdir(): 返回目录中文件和子目录的 Path 对象迭代器。glob(pattern): 在目录中查找匹配指定模式的文件和子目录,返回 Path 对象迭代器。rglob(pattern): 递归地在目录及其子目录中查找匹配指定模式的文件和子目录,返回 Path 对象迭代器。open(mode='r', buffering=-1, encoding=None, errors=None, newline=None): 打开路径指向的文件,返回文件对象。read_bytes(): 以二进制模式打开文件并读取其内容为字节串。read_text(encoding=None, errors=None): 以文本模式打开文件并读取其内容为字符串。write_bytes(data): 以二进制模式打开文件并将指定的字节串写入。write_text(data, encoding=None, errors=None): 以文本模式打开文件并将指定的字符串写入。mkdir(mode=0o777, parents=False, exist_ok=False): 创建目录。parents=True会创建所有必要的父目录,exist_ok=True允许目录已存在而不报错。touch(mode=0o666, exist_ok=True): 创建一个文件。如果文件已存在,则更新其访问时间和修改时间。rename(target): 将路径重命名为target。replace(target): 将路径移动或重命名为target。如果target已存在,则会覆盖它。unlink(missing_ok=False): 删除文件或软链接。如果missing_ok=True且路径不存在,则不会报错。rmdir(): 删除一个空目录。chmod(mode): 更改文件或目录的权限模式。owner(): 返回文件或目录的拥有者名称。group(): 返回文件或目录的所属组名称。lstat(): 如果路径是软链接,则返回链接本身的 stat 信息(不解析链接指向的目标)。否则与stat()相同。link_to(target): 创建一个硬链接,将当前路径作为指向target的硬链接。symlink_to(target, target_is_directory=False): 创建一个软链接,将当前路径作为指向target的软链接。readlink(): 返回软链接所指向的路径。
- 0
- 0
-
分享