from pathlib import Path,文件目录路径都有哪些方法可用

以下是 pathlib.Path 中各个方法和属性的详细说明:

路径属性与基础操作


  • absolute():返回当前路径的绝对路径(不解析符号链接)。
  • anchor:返回路径的锚点(根目录部分),如 Windows 中的 C:\ 或 Linux 中的 /
  • as_posix():将路径转换为 POSIX 格式(用 / 分隔),跨平台时常用。
  • as_uri():将路径转换为 file:// 格式的 URI,如 file:///home/user/file.txt
  • cwd():返回当前工作目录的 Path 对象(类方法,需用 Path.cwd() 调用)。
  • drive:返回路径中的驱动器名(Windows 专用),如 C:
  • home():返回当前用户的主目录(类方法,Path.home())。
  • is_absolute():判断路径是否为绝对路径(返回 True/False)。
  • name:返回路径的最后一部分(文件名或目录名),如 file.txt
  • parent:返回父目录的 Path 对象(直接上级目录)。
  • parents:返回所有父目录的迭代器(从直接上级到根目录)。
  • parts:将路径拆分为元组,如 Path("/a/b/c").parts 结果为 ('/', 'a', 'b', 'c')
  • root:返回路径的根目录,如 Linux 中的 / 或 Windows 中的 \
  • stem:返回文件名的主干(不含最后一个后缀),如 file.txtstemfile
  • suffix:返回文件名的最后一个后缀,如 file.tar.gzsuffix.gz
  • suffixes:返回文件名的所有后缀列表,如 file.tar.gzsuffixes['.tar', '.gz']

路径判断与检查


  • exists():判断路径(文件或目录)是否存在。
  • is_block_device():判断是否为块设备(如硬盘分区)。
  • is_char_device():判断是否为字符设备(如终端)。
  • is_dir():判断是否为目录。
  • is_fifo():判断是否为 FIFO 管道文件。
  • is_file():判断是否为普通文件。
  • is_mount():判断路径是否为挂载点。
  • is_relative_to(other):判断当前路径是否是 other 路径的子路径。
  • is_reserved():判断路径是否为系统保留名称(如 Windows 中的 CON)。
  • is_socket():判断是否为 socket 文件。
  • is_symlink():判断是否为符号链接。
  • match(pattern):判断路径是否匹配通配符模式(如 *.txt)。
  • samefile(other):判断当前路径与 other 是否指向同一个文件(通过 inode 判断)。

路径操作与文件处理


  • chmod(mode):修改路径的权限(类似 chmod 命令)。
  • expanduser():解析路径中的 ~ 为用户主目录(如 ~/file 变为 /home/user/file)。
  • glob(pattern):遍历当前目录中匹配通配符的文件 / 目录(非递归),返回迭代器。
  • hardlink_to(target):创建硬链接,将当前路径链接到 target
  • iterdir():遍历当前目录下的所有文件和子目录,返回迭代器。
  • joinpath(*other):拼接路径,如 path.joinpath("a", "b") 等价于 path / "a" / "b"
  • lchmod(mode):修改符号链接本身的权限(不跟随链接)。
  • link_to(target):同 hardlink_to(创建硬链接)。
  • lstat():获取符号链接本身的元数据(不跟随链接,返回 os.stat_result 对象)。
  • mkdir(mode=0o777, parents=False, exist_ok=False):创建目录。parents=True 表示递归创建父目录;exist_ok=True 表示目录已存在时不报错。
  • open(mode='r', **kwargs):打开文件,返回文件对象(类似 open() 函数)。
  • read_bytes():以字节形式读取文件内容(等价于 open().read())。
  • read_text(encoding=None):以文本形式读取文件内容。
  • readlink():返回符号链接指向的目标路径。
  • relative_to(other):返回当前路径相对于 other 的相对路径。
  • rename(target):重命名路径(类似 os.rename)。
  • replace(target):替换目标路径(若目标存在则覆盖)。
  • resolve(strict=False):返回绝对路径并解析所有符号链接。strict=True 时,若路径不存在则报错。
  • rglob(pattern):递归遍历所有子目录中匹配通配符的文件 / 目录(等价于 ** /pattern)。
  • rmdir():删除空目录(目录非空则报错)。
  • stat():获取文件 / 目录的元数据(跟随符号链接,返回 os.stat_result 对象)。
  • symlink_to(target, target_is_directory=False):创建符号链接,指向 target
  • touch(mode=0o666, exist_ok=True):创建空文件(若文件存在则更新修改时间)。
  • unlink(missing_ok=False):删除文件或符号链接。missing_ok=True 表示文件不存在时不报错。
  • with_name(name):返回更换文件名的新路径(保持目录不变),如 file.txtnew.txt
  • with_stem(stem):返回更换文件主干的新路径,如 file.txtnew.txt
  • with_suffix(suffix):返回更换文件后缀的新路径,如 file.txtfile.md
  • write_bytes(data):以字节形式写入文件(覆盖原有内容)。
  • write_text(data, encoding=None):以文本形式写入文件(覆盖原有内容)。

权限与所有者


  • group():返回路径所属的用户组名称。
  • owner():返回路径的所有者名称。

这些方法覆盖了文件目录操作的大部分场景,结合面向对象的语法,比传统的 os 模块更直观易用。

posted on 2025-08-19 21:30  痴心妄想  阅读(82)  评论(0)    收藏  举报

导航