Skip to main content

面向对象的文件系统路径

项目描述

注意:这个 backport 模块不再维护。如果您想报告问题或贡献补丁,请考虑使用pathlib2项目。

描述

pathlib 提供了一组类来处理文件系统路径。与使用字符串对象相比,它具有以下优点:

  • 不再繁琐地使用 os 和 os.path 函数。一切都可以通过运算符、属性访问和方法调用轻松完成。

  • 体现了不同路径类型的语义。例如,比较 Windows 路径会忽略大小写。

  • 定义明确的语义,消除任何缺陷或歧义(正斜杠与反斜杠等)。

要求

建议使用 Python 3.2 或更高版本,但 pathlib 也可用于 Python 2.7 和 2.6。

安装

在 Python 3.4 中,pathlib 现在是标准库的一部分。对于 Python 3.3 及更早版本,easy_install pathlibpip 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() 添加缺少的文档。

  • 当工作目录设置了其他位(例如 setgid 或粘着位)时,修复 test_mkdir_parents。

  • Python 问题 #20111:pathlib.Path.with_suffix() 现在健全地检查给定的后缀。

  • Python 问题 #19918:修复 Windows 下的 PurePath.relative_to()。

  • Python 问题 #19921:当使用 parents=True 调用 Path.mkdir() 时,将使用默认权限创建任何缺少的父级,忽略 mode 参数(模仿 POSIX“mkdir -p”命令)。

  • Python 问题 #19887:改进 Path.resolve() 算法以支持某些符号链接链。

  • 使用 unicode 路径名使 pathlib 在 Python 2.7 下可用(尽管只有纯 ASCII)。

  • 问题 #21:在 Python 2.7 下使用新部门时修复 TypeError。

  • 添加 tox 支持以便于测试。

0.97 版

此版本使用PEP 428中指定的最终 API 使pathlib保持最新。改动过长,这里就不一一列举了,推荐阅读文档

0.8 版

  • 添加 PurePath.name 和 PurePath.anchor。

  • 添加 Path.owner 和 Path.group。

  • 添加 Path.replace()。

  • 添加 Path.as_uri()。

  • 问题 #10:使用 Path.open() 创建文件时,不要设置可执行位。

  • 问题 #11:修复与非路径对象的比较。

0.7版

  • 将“**”(递归)模式添加到 Path.glob()。

  • 在 Python 3.3 beta1 中的 API 重构之后修复 openat() 支持。

  • target_is_directory参数添加到 Path.symlink_to()

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。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pathlib-1.0.1.tar.gz (49.3 kB 查看哈希

已上传 source

内置分布

pathlib-1.0.1-py3-none-any.whl (14.4 kB 查看哈希

已上传 py3