2

新人必看:python自动化办公,开源项目的目录结构

 2 years ago
source link: https://blog.51cto.com/CoderWanFeng/5389048
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

新人必看:python自动化办公,开源项目的目录结构

原创

程序员晚枫 2022-06-16 20:28:02 博主文章分类:自动化办公 ©著作权

文章标签 python 开源项目 目录结构 文章分类 Python 编程语言 阅读数230

新人必看:python自动化办公,开源项目的目录结构_开源项目

大家好,这里是程序员晚枫。 开源项目:​ ​python-office​​ 已经上线1个月了,功能一直在不断完善中。

python-office 是一个 Python 自动化办公第三方库,能解决大部分自动化办公的问题。而且每个功能只需一行代码,不需要小白用户学习 Python 知识,希望做到真正的开箱即用。

今天给大家详细介绍一下这个开源项目的目录结构,方便大家对该项目的理解和参与开发,也欢迎大家对目录结构给出自己的建议,目前的版本主要参考了几个流行框架的目录结构:`​​pandas、flask、dash ​​`。

功能持续更新中,提交你的功能需求/参与项目开发👉​ ​Github​

文件夹 PATH 列表
卷序列号为 000000AB 0A45:16TS
D:\PYTHON-OFFICE
├─.idea
├─cli
├─contributors
│ └─demo
├─examples
├─core
├─docs
├─lib
│ ├─image
│ ├─pdf
│ ├─ppt
│ ├─tools
│ └─utils
├─office
├─script
├─tests
└─venv

该项目的源代码目录,目前包含:核心代码、PR文件夹、文档、单元测试、开发脚本、虚拟环境。

开源参与者的目录

开源项目的精髓,在于大家的集体创作。

因为我是第一次组织开源项目,而且项目初创,需要频繁变动主目录和代码,所以目前采取了一种比较保守的PR方式:

大家把自己的代码,在master分支上传到以自己昵称命名的文件夹后,由我来将大家的代码,加入上文介绍的核心功能目录中。

`​​未来项目稳定了,会逐步更换为开辟develop分支,并且直接提交到核心目录的PR方式。​​`

所以目前建立了2个文件夹:

  • `​​contributors​​`:在这里,自己用昵称新建一个文件夹后,任意修改和提交。不要动别人文件夹下的项目即可。
  • `​​examples​​`:同样用自己昵称新建一个文件夹,在里面写一个对自己开发功能的调用,这一步必须有。
新人必看:python自动化办公,开源项目的目录结构_python_02

用户的核心功能目录

其中用户会使用到的`​​核心代码​​`的文件夹有以下几个:

新人必看:python自动化办公,开源项目的目录结构_目录结构_03

这几个文件夹之间的关系,如下图所示。

  1. 用户有2种方式调用python-office这个库:
  • ①通过在代码里import office,
  • ②直接在cmd页面,运行`​​cli​​`包里的命令行(功能开发中)。
  1. `​​office​​​​库只提供API接口,核心功能类的实现在​​​​core​​​​文件夹进行开发,core中的通用工具类或者对第三方库的调用,在​​​​lib​​`里进行开发。它们之间之所以是层层调用的关系,是为了代码的解耦合,使代码逻辑更加清晰。
新人必看:python自动化办公,开源项目的目录结构_目录结构_04

开发人员用的目录

新人必看:python自动化办公,开源项目的目录结构_目录结构_05

这部分目录是给开发人员使用的,和仅仅使用python-office这个库的用户无关。

  • `​​tests​​`:单元测试的库,自己可以选择使用unittest或者pytest,我目前主要使用了unittest;
  • `​​venv​​`:本项目的虚拟环境,按照惯例,该目录没有上传到git仓库,需要自行配置;
  • `​​script​​`:目前主要是打包工具、发布工具,;
  • `​​docs​​`:存放有关项目的说明文档。

通过最近一段时间的开发我发现,参与开源项目的建设,可以快速提高自己的编程能力。 期待更多大神,参与到本项目的开发中~

如有任何疑问或建议,请大家在评论区和我交流❤


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK