Python路径操作pathlib
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()
: 返回软链接所指向的路径。