提供ORM路径类(文件和目录),这些类在修改其属性时自动发出文件系统IO操作。文件对象允许对多种形式的文件进行简单的内容操作。

pathmagic的Python项目详细描述


概述

pathmagic实现了两个类filedir,以类似于sqlalchemy之类的数据库orms的方式表示映射的文件系统obect。这些对象具有以下属性 设置好后执行文件系统操作,并实现许多有用的方法,以将几乎所有的文件系统I/O抽象到比os.pathpathlib更高的程度

目录

  • 设置时执行重命名和移动操作的属性(dir.pathdir.dirdir.name
  • 两个访问器对象(dir.filesdir.dirs)允许对其各自的集合、项访问、成员资格测试等进行迭代
  • 两个专门的访问器对象(dir.ddir.f),它们用蛇形的属性动态地填充自己,这些属性表示其dir中的文件/文件夹,这样 文件系统树可以完全通过属性访问来遍历
  • 方法创建新文件/目录,将self复制/移动到另一个路径/目录,删除self或内容,并将self连接到相对路径
  • 递归地向下遍历树,将自己的树与并行文件系统树进行比较
  • 基于有效的扩展名和匹配名称、路径和内容的regex模式,递归地在目录树中查找包含/排除的文件或目录。
  • 将self压缩到zipfile中
  • 使用ascii表示将树可视化到任意深度
  • 从HomePath、桌面或包初始化

文件

  • 设置时执行重命名和移动操作的属性(file.pathfile.dirfile.namefile.prenamefile.extension

  • 将self复制/移动到另一个路径/目录或删除self的方法

  • 从脚本入口点(在传统解释器中)和包资源初始化

  • file.read()file.write()方法(以及相关的file.contents属性),这些方法调用formathandler类来确定如何从基于文件的 在它的延伸上。formathandler使用工厂设计模式,并可在运行时扩展以启用文件来处理默认情况下不支持的文件类型。

  • 默认情况下,可识别的格式如下:

    <表><广告>格式 接受/返回类 文件扩展名 < /广告><正文> PDFPYPDF2< PDF >表格子类型.框架xlsx,csv单词docx.文档文件图像pil.图像PNG、JPF、JPEG音频pydub.音频片段MP3、WAV、OGG、FLV视频moviepy.editor.editMP4、MKV、AVI、GIF压缩pathmagic.dir拉链,焦油链接pathlib.file或pathlib.dir LNK 序列化任何< jsonsubtype.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上提交问题。

如果您提出新功能:

  • 详细解释它的工作原理。
  • 尽量缩小范围,以便于实施。
  • 请记住,这是一个志愿者驱动的项目,欢迎您的贡献:)

开始吧!

在提交请求之前,请检查它是否符合以下准则:

  1. 如果pull请求添加了功能,那么它应该包括测试,并且应该更新文档。为属于外部api的任何函数编写docstring,并添加 readme.md的功能。

  2. 如果pull请求修复了一个bug,则应添加测试以证明该bug已被修复。但是,对于错误修复,不需要更新文档。

  3. pull请求应该适用于最新版本的python(当前为3.7)。旧版本可能会附带工作,但不受官方支持。

  4. 应该使用内联类型提示,重点是确保像jedi这样的内省和自动完成工具能够尽可能理解代码。

  5. 在可能的情况下,应遵循PEP8指南,但鼓励偏离其合理之处并提高可读性。以下PEP8错误代码可以是 安全忽略:E121、E123、E126、E226、E24、E704、W503

  6. 此存储库故意不允许PEP8 79字符的限制。因此,任何遵守本公约的捐款都将被拒绝。根据经验,你应该 尽量保持在200个字符以下,除非遍历保留对齐,或者行主要是非算法代码,例如非常长的字符串或函数 电话:

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

推荐PyPI第三方库


热门话题
字符串输入到二进制输出Java   java Tomcat:严重:加载WebappClassLoader时出错   不满意链接错误:org。opencv。海吉。海吉。imread_0(OpenCV Java)   java列表空指针   java在@OneToMany之前删除子项而不更新它们   使用lambda的inline避免意外null的java筛选   java重写等于方法问题   在微服务体系结构中提供静态内容的java   爪哇奇怪的地板圆整   java如何使用isElementPresent(By)方法验证测试脚本是否正常工作?   java onetomany JPA注释不会删除孤立项   java将带有Spring RestTemplate的文件上载到LogicalDOC   输出简单java递增不清晰   java JNI库在垃圾收集时释放内存?   交换ArrayListjava的元素   获取数据的SQL查询代码背后的java逻辑?   xml GWT向客户端项目添加外部java类   使用redisson连接redis群集的java问题   java如何在安卓改型中上传文件时显示进度条   java连接到Android Spinner时出错