跳转到主要内容

面向对象的文件系统路径

项目描述

注意: 此回滚模块不再维护。如果您想报告问题或贡献补丁,请考虑 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() 添加缺失的文档。

  • 修复 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。

项目详情


下载文件

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

源分发

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

上传时间

构建分发

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

上传时间 Python 3