面向对象的文件系统路径
项目描述
注意: 此回滚模块不再维护。如果您想报告问题或贡献补丁,请考虑 pathlib2 项目。
描述
pathlib提供了一套用于处理文件系统路径的类。它比使用字符串对象具有以下优势
不再需要繁琐的os和os.path函数。所有操作都可以通过运算符、属性访问和方法调用轻松完成。
体现了不同路径类型的语义。例如,比较Windows路径时忽略大小写。
定义良好的语义,消除了任何瑕疵或歧义(正斜杠与反斜杠等)。
要求
建议使用Python 3.2或更高版本,但pathlib也可与Python 2.7和2.6一起使用。
安装
在Python 3.4中,pathlib现在是标准库的一部分。对于Python 3.3及更早版本,可以使用 easy_install pathlib 或 pip install pathlib。
示例
导入模块类
>>> from pathlib import *
列出目录中的Python源文件
>>> list(p.glob('*.py')) [PosixPath('test_pathlib.py'), PosixPath('setup.py'), PosixPath('pathlib.py')]
在目录树中导航
>>> p = Path('/etc') >>> q = p / 'init.d' / 'reboot' >>> q PosixPath('/etc/init.d/reboot') >>> q.resolve() PosixPath('/etc/rc.d/init.d/halt')
查询路径属性
>>> q.exists() True >>> q.is_dir() False
打开文件
>>> with q.open() as f: f.readline() ... '#!/bin/bash\n'
文档
完整文档可以在 Read the Docs 上阅读。
贡献
主要开发现在在Python标准库中进行:请参阅 Python开发者指南,并在 Python错误追踪器 上报告问题。
然而,如果您发现特定于先前版本的 Python(如 2.7 或 3.2)的问题,您可以在 BitBucket 项目页面 上发布一个问题。
历史
版本 1.0.1
拉取请求 #4:eevee 的 Python 2.6 兼容性。
版本 1.0
本版本将 pathlib 更新至与官方 Python 3.4 版本一致,并修复了几个 2.7 特定的问题。
Python 问题 #20765:为 PurePath.with_name() 和 PurePath.with_suffix() 添加缺失的文档。
修复 test_mkdir_parents 在工作目录有额外位设置(如 setgid 或粘性位)时的问题。
Python 问题 #20111:pathlib.Path.with_suffix() 现在会对给定的后缀进行合理性检查。
Python 问题 #19918:修复 Windows 下的 PurePath.relative_to()。
Python 问题 #19921:当 Path.mkdir() 被调用并带有 parents=True 参数时,任何缺失的父目录都会使用默认权限创建,忽略模式参数(模仿 POSIX “mkdir -p” 命令)。
Python 问题 #19887:改进 Path.resolve() 算法以支持某些符号链接链。
使 pathlib 能够在 Python 2.7 下使用 Unicode 路径名(尽管只支持纯 ASCII)。
问题 #21:修复 Python 2.7 使用新除法时的 TypeError。
添加 tox 支持以简化测试。
版本 0.97
本版本将 pathlib 更新至与 PEP 428 中指定的最终 API 一致。更改太多,无法在此列出,建议阅读 文档。
版本 0.8
添加 PurePath.name 和 PurePath.anchor。
添加 Path.owner 和 Path.group。
添加 Path.replace()。
添加 Path.as_uri()。
问题 #10:使用 Path.open() 创建文件时,不要设置可执行位。
问题 #11:修复与非 Path 对象的比较。
版本 0.7
将 “**”(递归)模式添加到 Path.glob()。
修复 Python 3.3 beta1 API 重构后的 openat() 支持。
向 Path.symlink_to() 添加 target_is_directory 参数。
版本 0.6
添加 Path.is_file() 和 Path.is_symlink()。
添加 Path.glob() 和 Path.rglob()。
添加 PurePath.match()。
版本 0.5
添加 Path.mkdir()。
Michele Lacchia 添加 Python 2.7 兼容性。
当级别大于路径长度时,parent() 会抛出 ValueError。
项目详情
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。