面向对象的文件系统路径

pathlib的Python项目详细描述


注意:此后台端口模块不再维护。如果您想报告问题或提供修补程序,请考虑pathlib2项目。

说明

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

  • 不再麻烦地使用os和os.path函数一切都可以 通过运算符、属性访问和方法调用很容易完成。
  • 体现了不同路径类型的语义例如,比较 窗口路径忽略大小写。
  • 定义良好的语义,消除任何缺点或歧义(向前vs. 向后斜杠等)。

要求

建议使用Python3.2或更高版本,但Pathlib也可用于Python2.7 和2.6。

安装

在Python3.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 developer’s guide和 在Python bug tracker上报告问题。

但是,如果您发现特定于先前版本的python的问题 (如2.7或3.2),您可以在 BitBucket project page

历史记录

版本1.0.1

  • 拉取请求4:Eevee提供的Python2.6兼容性。

版本1.0

这个版本使pathlib成为官方python 3.4的最新版本 发布,并修复了两个2.7特定的问题。

  • python问题20765:为purepath.with_name()添加缺少的文档 和purepath.with_suffix().
  • 当工作目录有额外的位时,修复test_mkdir_父目录 设置(例如setgid或粘性位)。
  • Python问题2011:pathlib.Path.with_suffix()现在检查 给定后缀。
  • Python问题#19918:修复Windows下的PurePath.relative_to()
  • python问题19921:当使用parents=true调用path.mkdir()时,任何 使用默认权限创建缺少的父项,忽略模式 参数(模拟posix“mkdir-p”命令)。
  • python问题19887:改进path.resolve()算法以支持 某些符号链。
  • 使pathlib在使用unicode路径名的python 2.7下可用(仅纯 不过,是ASCII)
  • 问题21:在使用新除法时,修复Python2.7下的typeerror。
  • 添加毒物支持以便于测试。

版本0.97

此版本使pathlib与指定的最终API保持最新 在PEP 428中。此处列出的更改太长,建议 阅读documentation

警告

此版本中的API与Pathlib 0.8和 早期的。一定要检查一下你的密码,看是否有破损!

版本0.8

  • 添加purepath.name和purepath.anchor。
  • 添加Path.owner和Path.group
  • 添加path.replace()。
  • 添加path.as_uri()。
  • 问题10:创建path.open()文件时,不要设置可执行文件 比特。
  • 问题11:修复与非路径对象的比较

版本0.7

  • 将'**'(递归)模式添加到path.glob()中。
  • 修复了Python3.3beta1中API重构后的openat()支持。
  • target_is_directory参数添加到path.symlink_to()

版本离子0.6

  • add path.is_file()和path.is_symlink()
  • 添加path.glob()和path.rglob()
  • 添加purepath.match()

版本0.5

  • 添加path.mkdir()。
  • michele lacchia添加了python 2.7兼容性。
  • 当级别大于路径时,使parent()引发值错误 长度。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring数据elasticsearch@Query嵌套对象注释   java JAXB解组器正在跳过具有其他命名空间的元素   java Web视图文件选择器崩溃问题   macos通过java创建的应用程序访问MacOSX上的麦克风,并打包到。dmg   在子文件夹上使用java设置ACL的文件权限失败(缺少继承)   java Force在AlertDialog中显示软键盘   java如何保存上传的文件   java如何从jpeg文件中的FFC4(DHT)头创建哈夫曼树?   关于高性能流数据处理的java问题   SpringMVC项目中Tiles页面的java集标题   从Java到Webview Javascript的Android回调函数   java无法从循环打印“FlimFlam”   OpenJDK安装时没有java命令