提供ORM路径类(文件和目录),这些类在修改其属性时自动发出文件系统IO操作。文件对象允许对多种形式的文件进行简单的内容操作。
pathmagic的Python项目详细描述
概述
pathmagic实现了两个类file
和dir
,以类似于sqlalchemy之类的数据库orms的方式表示映射的文件系统obect。这些对象具有以下属性
设置好后执行文件系统操作,并实现许多有用的方法,以将几乎所有的文件系统I/O抽象到比os.path
或pathlib
更高的程度
目录
类
- 设置时执行重命名和移动操作的属性(
dir.path
,dir.dir
,dir.name
) - 两个访问器对象(
dir.files
,dir.dirs
)允许对其各自的集合、项访问、成员资格测试等进行迭代 - 两个专门的访问器对象(
dir.d
,dir.f
),它们用蛇形的属性动态地填充自己,这些属性表示其dir
中的文件/文件夹,这样 文件系统树可以完全通过属性访问来遍历 - 方法创建新文件/目录,将self复制/移动到另一个路径/目录,删除self或内容,并将self连接到相对路径
- 递归地向下遍历树,将自己的树与并行文件系统树进行比较
- 基于有效的扩展名和匹配名称、路径和内容的regex模式,递归地在目录树中查找包含/排除的文件或目录。
- 将self压缩到zipfile中
- 使用ascii表示将树可视化到任意深度
- 从HomePath、桌面或包初始化
文件
类
设置时执行重命名和移动操作的属性(
file.path
,file.dir
,file.name
,file.prename
,file.extension
)将self复制/移动到另一个路径/目录或删除self的方法
从脚本入口点(在传统解释器中)和包资源初始化
file.read()
和file.write()
方法(以及相关的file.contents
属性),这些方法调用formathandler
类来确定如何从基于文件的 在它的延伸上。formathandler
使用工厂设计模式,并可在运行时扩展以启用文件
来处理默认情况下不支持的文件类型。默认情况下,可识别的格式如下:
<表><广告> < /广告><正文>格式 接受/返回类 文件扩展名 PDF PYPDF2 < PDF >表格 子类型.框架 xlsx,csv 单词 docx.文档 文件 图像 pil.图像 PNG、JPF、JPEG 音频 pydub.音频片段 MP3、WAV、OGG、FLV 视频 moviepy.editor.edit MP4、MKV、AVI、GIF 压缩 pathmagic.dir 拉链,焦油 链接 pathlib.file或pathlib.dir LNK 序列化 任何 <json subtype.namespace或任何 json 加价 子类型.标记 HTML、XML 默认值 STR 其他一切
安装
要安装,请使用pip:
$ pip install pathmagic
或者克隆回购协议:
$ git clone https://github.com/matthewgdv/pathmagic.git
$ python setup.py install
用法
即将提供详细的使用示例。
贡献
我们欢迎您的贡献,我们非常感谢您的贡献!每一点都有帮助,我们都会给予表扬。
您可以通过多种方式做出贡献:
报告错误
报告错误,请访问https://github.com/matthewgdv/pathmagic/issues
如果您报告了一个错误,请包括:
- 您的操作系统名称和版本。
- 有关本地设置的任何有助于故障排除的详细信息。
- 重现错误的详细步骤。
修复错误
查看github问题中的bug。任何带有"bug"和"help wanted"标记的内容都可以向任何希望对其进行修复的人开放。
实现功能
查看github问题以了解特性。任何带有"增强"和"需要帮助"标签的内容都对任何想要实现它的人开放。
编写文档
存储库总是可以使用更多的文档,无论是作为官方文档的一部分,还是在docstring中,甚至在web上的博客文章、文章等中。
提交反馈
发送反馈的最佳方式是在https://github.com/matthewgdv/pathmagic/issues" rel="nofollow">https://github.com/matthewgdv/pathmagic/issues上提交问题。
如果您提出新功能:
- 详细解释它的工作原理。
- 尽量缩小范围,以便于实施。
- 请记住,这是一个志愿者驱动的项目,欢迎您的贡献:)
开始吧!
在提交请求之前,请检查它是否符合以下准则:
如果pull请求添加了功能,那么它应该包括测试,并且应该更新文档。为属于外部api的任何函数编写docstring,并添加 readme.md的功能。
如果pull请求修复了一个bug,则应添加测试以证明该bug已被修复。但是,对于错误修复,不需要更新文档。
pull请求应该适用于最新版本的python(当前为3.7)。旧版本可能会附带工作,但不受官方支持。
应该使用内联类型提示,重点是确保像jedi这样的内省和自动完成工具能够尽可能理解代码。
在可能的情况下,应遵循PEP8指南,但鼓励偏离其合理之处并提高可读性。以下PEP8错误代码可以是 安全忽略:E121、E123、E126、E226、E24、E704、W503
此存储库故意不允许PEP8 79字符的限制。因此,任何遵守本公约的捐款都将被拒绝。根据经验,你应该 尽量保持在200个字符以下,除非遍历保留对齐,或者行主要是非算法代码,例如非常长的字符串或函数 电话: