档案、图像、远程文件系统等的面向对象路径接口

pathlab的Python项目详细描述


{a2}

Pathlab为存档、图像、远程 文件系统等。它是基于pathlib构建的,包括对以下内容的内置支持:

  • tar存档
  • zip存档
  • isodisc images(包括Rock Ridge;不包括Joliet和UDF)
  • JFrog工件(通过requests

您还可以使用自己的访问器定义自己的Path子类。在

安装

需要Python 3.6+。使用pip:

pip install --user pathlab

使用

这些用法示例改编自pathlib文档。在

获取路径类型:

>>> from pathlab import TarAccessor
>>> TarPath = TarAccessor('project.tgz').TarPath

列出子目录:

>>> root = TarPath('/')
>>> [x for x in root.iterdir() if x.is_dir()]
[TarAccessor('project.tgz').TarPath('/docs')
 TarAccessor('project.tgz').TarPath('/etc'),
 TarAccessor('project.tgz').TarPath('/project')]

在此目录树中列出Python源文件:

>>> list(root.glob('**/*.py'))
[TarAccessor('project.tgz').TarPath('/setup.py'),
 TarAccessor('project.tgz').TarPath('/docs/conf.py'),
 TarAccessor('project.tgz').TarPath('/project/__init__.py')]

在目录树中导航:

>>> p = TarPath('/etc')
>>> q = p / 'init.d' / 'reboot'
>>> q
TarAccessor('project.tgz').TarPath('/etc/init.d/reboot')
>>> q.resolve()
TarAccessor('project.tgz').TarPath('/etc/rc.d/init.d/halt')

查询路径属性:

>>> q.exists()
True
>>> q.is_dir()
False

打开文件:

>>> with q.open() as f: f.readline()
...
'#!/bin/bash\n'

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

推荐PyPI第三方库


热门话题
spring引导服务器忽略java上载请求   java多个驼峰路由会导致大量线程吗?   java 安卓单签入回收器gridLayout管理器   Java中指向类的不同实例的对象数组   java的启动/停止和打开/关闭等分组功能是否违反了单一责任原则?   java hibernate组件映射与自定义值类型   java如何使用不同的JDK在Jenkins作业中使用JDK8   java从匹配器获取字符串的特定部分   java通过在Spark数据框内的数组列中映射来创建新列   servlet的java Tomcat配置   java多个活动不在一个应用程序安卓 studio中   javajsf:view beforePhase在我离开页面时多次触发   javascript如何使用“java脚本”进行加密,使用和“java”进行解密   java My App不是从URL ASPX读取简单的JSON   java在RESTish web服务中应用DDD原则