python中软件开发规范,模块,序列化随笔

1.软件开发规范

首先:

当代码都存放在一个py文件中时会导致

1.不便于管理,修改,增加

2.可读性差

3.加载速度慢

划分文件
1.启动文件(启动接口)--starts文件放bin文件里
2.公共文件(大家需要的功能)---放lib文件夹里
3.配置文件(静态文件)变量--放conf文件夹里
4.主逻辑(核心)---函数,类等等,src.py--放core文件夹里
5.用户相关数据--账号密码等文件 register--放db文件夹里
6.日志----记录主要信息,记录开发人员的行为---logg.log--放log文件夹里
高内聚----前面定义模块名字,调用
regist = r"模块地址"

2.序列化 json 和 pickle

json

将数据类型转换成字符串---序列化json.dumps

将字符串转换成原数据类型--反序列化json loads

可以序列:字典,列表, (元组序列后变成列表)

dumps loads----用于网络传输
dump load用于文件存储
dumps loads------
dic = ‘{"key":1}‘
import json
s = json.dumps(dic)
print(s,type(s))----转成字符串
d = json.loads(s)
print(d,type(d))

list = [1,2,3,4]
import json
s = json.dumps(list)--序列
l = json.loads(s)反序列
print(l,type(l))
dump load-------
dic = {"key":1}
print(json.dump(dic,open("a","a",encoding="utf-8")))将源数据类型转换成字符串,写入到文件中
print(json.load(open("a","r",encoding="utf-8"))[‘key‘])将文件中字符串转成源数据类型

dic = {"key":1}
f = open("a","a",encoding="utf-8")
f.write(json.dumps(dic)+"\n")
f1 = open("a","r",encoding="utf-8")
for i in f1:
print(json.load(i),type(json.loads(i)))
dic = {"key":"宝元"}
print(json.dumps(dic,ensure_ascii=False))
print(json.dumps(dic,ensure_ascii=False,sort_keys=True))排序

pickle:

pickle---python有,几乎可以序列python中所有数据类型,匿名函数不能序列
import pickle
print(pickle.dumps((1,2,3,4,5)))

def func():
print(1)
a = pickle.dumps(func)将源数据类型转换成类似字节的内容
print(pickle.loads(a))将类似字节的内容转换成原数据类型

os文件夹,文件路径

工作路径:
import os---和操作系统做交互,给操作系统发指令
print(os.getcwd())---获取当前文件工作路径
os.chdir("绝对路径")---路径切换
print(os.getcwd)

文件夹
os.mkedir("名字")创建文件夹
os.rmdir("名字")删除指定文件夹
os.makedirs(‘a/b/c‘)递归创建文件夹
os.removedirs(‘a1/a2/a3‘)递归删除文件夹
print(os.listdir(r‘绝对路径‘))查看当前文件夹下所有内容(列表显示)

文件
os.remove(r"绝对路径")删除文件,彻底删除,找不到
os.rename()重命名
os.path.getsize(r"绝对路径")获取文件大小

路径
os.path.abspath("相对路径")返回的是绝对路径***
os.path.split(r"绝对路径") 将路径分割成一个路径和一个文件名
os.path.dirname(r"绝对路径")获取到父目录***
os.path.basename(r"绝对路径")获取到路径的名字
os.path.join("D:\Python","day12","test")路径拼接****

判断
os.path.exists("blog")判断路径是否存在
os.path.isabs(r"")不管存不存在,判断绝对路径是否存在
os.path.isdir(r"")判断是否是文件夹
os.path.isfile(r"")判断是不是文件

原文地址:https://www.cnblogs.com/yecanglan/p/11401860.html

时间: 2024-10-27 08:09:43

python中软件开发规范,模块,序列化随笔的相关文章

Python 3 软件开发规范

Python 3 软件开发规范 参考链接 http://www.cnblogs.com/linhaifeng/articles/6379069.html#_label14 对每个目录,文件介绍. 1 #=============>bin目录:存放执行脚本 2 3 #start.py 4 5 import sys,os 6 7 8 9 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 10 11 sys.pat

[转]软件开发规范—模块开发卷宗(GB8567——88)

做软件开发是有那么一套国准可参照的,当然就是那些文档了,这里列出一下所有软件开发的规范文档: 操作手册 用户手册 软件质量保证计划 软件需求说明书 概要设计说明书 开发进度月报 测试计划文档 测试分析报告 数据库设计说明书 软件配置管理计划 模块开发卷宗 详细设计说明书 项目开发总结报告 我现在再做的东西是数据库设计说明书,两天前才写玩模块开发卷宗,那时候在网上找了一些事例不是很符合规范,而完全对着模块开发卷宗的模板去写真不知道里面要写什么,因为里面有太多概念性的东西都看不懂,在这里贴以下广佛都

软件开发规范及常用模块一

一.软件开发规范 ATM #总文件夹 bin:用来放程序执行文件:start.py conf:配置文件 log:日志文件 lib:放模块和包 db:数据文件 core:放程序的核心逻辑,里面src.py readme #用来保存详细的每个文件夹的介绍,及作用 以上并未非规定,而是看个人理解不同自行定制.但一定要清晰明了.二.序列化 前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用, 但遇到

python软件开发规范&分文件对于后期代码的高效管理

根据本人的学习,按照理解整理和补充了python模块的相关知识,希望对于一些需要了解的python爱好者有帮助! 一.软件开发规范--分文件 当代码存在一个py文件中时: 1.不便于管理 (修改,增加) 2.可读性差 3.加载速度慢 Django--雏形(约定俗称) 1.启动文件 启动接口 2.公共文件 大家需要的功能 3.配置文件(静态文件) 变量 4.主逻辑 核心 5.用户相关数据 账号和密码等文件 6.日志 记录主要信息,记录开发人员的行为 高内聚 二.sys sys python解释器做

模块,包,软件开发规范

模块 import from ... import ... 包 import from ... import ... 绝对导入和相对导入 软件开发规范

Python 软件开发规范

软件开发规范旨在规范以及整理合理的代码进行,让整个程序看起来结构清晰,层次分明,其中没有严格的要求要按那种规范来执行,只要合适清晰即可,这个规范已成为约定熟成的一种规范了 像上边的soft的程序下边 1.bin为执行目录,里边start.py为整个程序的调用执行脚本 2.conf为配置目录,所有配置都存入在这里 3.core为核心代码存在目录,所有的核心逻辑代码都存放在这里 4.db 为数据存放目录 5.lib为调用类目录 6.log 为日志目录,程序发生的日志全存放在这里

包的导入/软件开发规范/异常处理

1.包的导入包是一票文件夹和py绝对导入是从根目录开始from,不能挪动,但是直观(此处的根目录可以通过打印sys.path来查看) 相对路径是使用.和..来表示,可以挪动此时不能再在包内的任何位置使用绝对路径来导入,也绝不能再包里调用里面的py文件 一个' . '表示当前文件夹,两个' . . '表示当前文件夹的上一层文件夹. 2.软件开发规范: 每一个项目都写成这样, bin下面有start.py,作为程序入口,if__name__==双下main,如下定式导入便不会再犯错 import o

python中time、datetime模块的使用

目录 python中time.datetime模块的使用 1.前言 2.time模块 1.时间格式转换图 2.常用方法 3.datetime模块 python中time.datetime模块的使用 1.前言 如果您从事过python web的开发,那一定有过这样的经历,对于各种复杂繁琐的业务逻辑,掺杂着各种各样的时间约束,让人很容易搞的头晕眼花,比如展示出一天内用户进行过的所有操作记录,再比如进行验证码验证时获取当前时间与验证码生成时间进行比较,检查是否超过10分钟过期时间之类.这些关于时间的业

在python中扩展c语言模块

有一个以前写的c语言代码,我想把它用在python程序中.我先是看了<python基础教程>一书中的方法,书中说可以用swig加python内置distutils模块的方法来实现.我照着书上的步骤试了试,结果在导入模块的时候总是提示"ImportError: dynamic module does not define init function (initprintf)".起初我以为是so文件没有放对位置.但是我试着在目录中建立了一个简单的python模块,然后再导入,发