python学习之-软件开发的目录规范
Posted clyde_S
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之-软件开发的目录规范相关的知识,希望对你有一定的参考价值。
通常软件目录下有几个标准文件夹
软件主文件夹命名,通常都是大写(ATM_SHOPPING)
-------------------------------------------------------------------------
bin : 启动文件文件夹(整个软件的启动文件)
conf : 软件配置文件(软件全局性的一些变量和参数)
core :核心逻辑
db :专门放数据相关的文件(比如账号数据等)
lib :自定义的模块
log :日志文件
Readme.txt 软件介绍的文本
---------------------------------------------------------------------------
bin :start.py 启动文件
import sys
import os
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #就是取执行文件的绝对路径,然后获取执行文件的目录赋值给一个变量
sys.path.append(BASE_DIR)
from core import src
src.run()
PS:调用sys和os模块,os模块下有个path模块下有个dirname模块和abspath模块,用abspath获取绝对路径,dirname就是取执行文件的目录,有几层目录取几次dirname即可
PS:有一个内置的全局变量是__file__,是当前执行文件的绝对路径
PS:sys模块下有一个path模块,指的是环境变量,将变量放入环境变量即可调用所有模块
conf : setting.py 配置文件
import os
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #动态获取路径,获取当前文件的绝对路径,然后获取执行文件的目录,有几层目录写几次
log_path=r‘%slog ransaction.log‘ %BASE_DIR #这里将日志文件的路径以动态方式放入log_path变量以供其他文件调用
core : src.py 核心代码 (主要的业务功能,就是一些主功能)
func_dic={
‘1‘:login,
‘2‘:register,
‘3‘:shopping,
‘4‘:transfer,
‘5‘:pay
}
def run():
while True:
print("""
0 退出
1 登录
2 注册
3 购物
4 转账
5 支付
""")
choice =input(‘请输入操作>>>: ‘).strip()
if choice == ‘0‘:break
if choice in func_dic:
func_dic[choice]()
else:
print(‘输出的指令不存在,请重新输入‘)
PS:就是一个首页的功能,软件相关功能所有的集合文件
db : 数据文件
lib : 自定义的库
项目中共用的功能,主功能需要调用的功能等模块
common.py
import time
from conf import settings #从conf文件夹内导入setting模块
def logger(msg):
with open(r‘%s‘ %settings.log_path, ‘at‘, encoding=‘utf-8‘) as f: #直接获取setting模块内的日志变量
f.write(‘%s %s ‘ % (time.strftime(‘%Y-%m-%d %H:%M:%S‘),msg))
log : transaction.log(这个根据软件来命名,没有固定格式)
小常识:
(一)
日志功能需要调用时间模块
import time
写入时间功能:time.strftime(‘%y-%m-%d %H:%M:%S‘) #(这是固定格式)
(二)
项目文件夹放在顶级,建在顶级,就可以在导入模块的时候可以用tab补全,或者弹出提示
(三)
启动文件放在项目文件夹的根目录下,就无需处理环境变量,因为软件的根目录就是当前启动文件的文件夹(软件的环境变量都是以执行文件为准)
以上是关于python学习之-软件开发的目录规范的主要内容,如果未能解决你的问题,请参考以下文章