规范化目录

将代码进行分类的优点:加载快、可读性高、查询修改简单。

1. 划归固定的路径:

​ 统一相同的路径,也就是统一相同的变量,代码中如果需要这个路径时,直接引用即可,可以多次引用。

2. 划分文件

2.1 seetings 配置文件

	setting.py文件:存放静态路径、变量、数据库的链接、配置文件、静态文件等,一般只是引用、不改变。
存放在conf文件夹。

2.2 common 公共组件文件

	common.py公共组件文件,放置一些公用的函数、功能,以便其他主逻辑或者业务需求。
存放在lib文件夹。

2.3 src 主文件

	src.py主文件,放置主逻辑函数、核心函数、以及可以直接体现、贯穿整个项目的主要功能。
存放在core文件夹。

2.4 starts 项目启动文件

	starts.py项目启动文件,便于启动项目的功能,单独放置一个文件中,为了显眼、操作方便。
存放在bin文件夹。

2.5 类似register文件

register文件可存放用户信息、数据等相关的多个文件。
存放在db文件夹。

2.6 logging 日志文件

日志文件可供开发、运维人员使用,可以记录用户干了什么。
存放在log文件夹。

3. 划分项目目录

"项目目录结构"其实也是属于"可读性和可维护性"的范畴,我们设计一个层次清晰的目录结构,就是为了达到以下两点:
1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。
2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。

4. 项目启动文件编写

4.1 sys模块

sys模块内置模块,文件运行时,sys内置模块就会将一些模块自动加载到内存(内置模块、time,json pickle等以及当前目录下的。
如何引用到一个模块最本质的原因在于这个模块名称空间在不在内存.
如果不能直接引用一个模块,其必定不是内置或者当前目录下的py文件。所以,我们要手动将其添加到内存。
sys.path.append()就是手动的将一些模块添加到内存,添加完毕之后,就可以直接引用了.

4.2 starts.py示例

# 为了便于路径查询导入,因此一般在项目的starts.py文件中,将整个项目路径导入。
import os
import sys
BASE_PASH = os.path.dirname(os.path.dirname(__file__))
# 找到当前文件的父父级,也就是整个项目文件夹(blog)
sys.path.append(BASE_PASH)
from core.src import run
if __name__ == '__main__': # 可以防止其他人导入
run() # 启动主文件函数

python 20 规范化目录的更多相关文章

  1. Python开发之规范化目录

    13.规范化目录 规范目录优点: 可读性高 加载快 查询修改简 规范化目录结构 (1) start.py文件:首要配置启动文件,运行run()就可以执行项目 #start import sys imp ...

  2. python之工作目录和文件引用

    1.参考 如何获得Python脚本所在目录的位置 Python 相对导入与绝对导入 还没细看 2.不考虑exe打包 sys.path[0] #顶层运行脚本的绝对目录 os.path.split(os. ...

  3. 【转】python文件和目录操作方法大全(含实例)

    python文件和目录操作方法大全(含实例) 这篇文章主要介绍了python文件和目录的操作方法,简明总结了文件和目录操作中常用的模块.方法,并列举了一个综合实例,需要的朋友可以参考下一.python ...

  4. Python OS 文件/目录方法

    Python OS 文件/目录方法 os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: 序号 方法及描述 1 os.access(path, mode) 检验权限模式 2 os. ...

  5. day20——规范化目录

    day20 为什么要有规范化目录 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定 ...

  6. 老猿Python博文汇总目录--按标题排序

    ☞ ░ 前往老猿Python博文目录 ░ 本部分为老猿CSDN全部博文的汇总(含转载部分),所有文章在此未进行归类,仅按文章标题排序,方便关键字查找.本部分内容将至少以周为单位定期更新,可能不包含发布 ...

  7. python遍历一个目录,输出所有文件名

    python遍历一个目录,输出所有文件名 python os模块 os import os  def GetFileList(dir, fileList):  newDir = dir  if os. ...

  8. python之三级目录

    #python之三级目录低配版 menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{ }, 'HP':{ }, '渣打银行':{ }, 'CCTV':{ }, }, '望京': ...

  9. Python数据分析学习目录

    python数据分析学习目录 Anaconda的安装和更新 矩阵NumPy pandas数据表 matplotlib-2D绘图库学习目录                      

随机推荐

  1. Windows 设置自启动计划任务(非登录启动)

    原因:服务器会不定期重启,且重启后无人看管,不会有人去登录系统.导致我们做的一些开机启动程序失效,进而系统瘫痪. 解决方法: 自己理解,想要达到目的有两种方式:系统服务 & 计划任务配置. 计 ...

  2. python购物车升级版

    各文件内容 前言 功能架构等请参考前一篇博客,此篇博客为进阶版的存代码展示. 详细文件内容 启动文件 starts.py启动文件 import os import sys BASE_DIR = os. ...

  3. Unity AR Foundation 和 CoreML: 实现手部的检测和追踪

    0x00 前言 Unity的AR Foundation通过上层抽象,对ARKit和ARCore这些底层接口进行了封装,从而实现了AR项目的跨平台开发能力. 而苹果的CoreML是一个可以用来将机器学习 ...

  4. JavaSE总结(二)

    一.Java Number .65f;byte c =0x4a; 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形.为了解决这个问题,Java 语言为每一个内置数据类型提供 ...

  5. python的发展史

    python的发展史 1989年,被称为龟叔的Guido在为ABC语言写插件时,产生了写一个简洁又实用的编程语言的想法,并开始着手编写.因为其喜欢Monty Python喜剧团,所以将其命名为pyth ...

  6. 【Demo 1】基于object_detection API的行人检测 1:环境与依赖

    环境 系统环境: win10.python3.6.tensorflow1.14.0.OpenCV3.8 IDE: Pycharm 2019.1.3.JupyterNotebook 依赖 安装objec ...

  7. 动态规划_Cow Bowling_POJ-3176

    The cows don't use actual bowling balls when they go bowling. They each take a number (in the range ...

  8. string的学习

    原:https://blog.csdn.net/qq_37941471/article/details/82107077 一. string的构造函数的形式: string str:生成空字符串 st ...

  9. 蘑菇街工程师常用的Linux命令!

    一.查看日志 线上出现了问题,登上线上的机器查日志是非常常见的操作了.我第一次登上线上机器查日志的时候,我还只记得以下的几个命令(假设现在我们的日志文件叫做service.log): cat serv ...

  10. UE4 游戏模块初始化顺序

    最近看教学,有个讲解UE4初始化顺序的,记录一下. 首先创建一个Actor,Character,GameInstance,GameMode,LevelScriptActor(关卡),PlayerCon ...