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"")判断是不是文件
python中软件开发规范,模块,序列化随笔的更多相关文章
- Python 3 软件开发规范
Python 3 软件开发规范 参考链接 http://www.cnblogs.com/linhaifeng/articles/6379069.html#_label14 对每个目录,文件介绍. #= ...
- [转]软件开发规范—模块开发卷宗(GB8567——88)
做软件开发是有那么一套国准可参照的,当然就是那些文档了,这里列出一下所有软件开发的规范文档: 操作手册 用户手册 软件质量保证计划 软件需求说明书 概要设计说明书 开发进度月报 测试计划文档 测试分析 ...
- Python模块的导入以及软件开发规范
Python文件的两种用途 1 . 当脚本直接使用,直接当脚本运行调用即可 def func(): print("from func1") func() 2 . 当做模块被导入使用 ...
- python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)
一.昨日作业讲解 先来回顾一下昨日的内容 1.os模块 和操作系统交互 工作目录 文件夹 文件 操作系统命令 路径相关的 2.模块 最本质的区别 import会创建一个专属于模块的名字, 所有导入模块 ...
- Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型)
Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶软件开发规范 六个目录: #### 对某 ...
- python27期day16:序列化、json、pickle、hashlib、collections、软件开发规范、作业。
序列化模块:什么是序列化呢? 序列化的本质就是将一种数据结构(如字典.列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化.将这个字典直接写入文件是不可以的,必须转化成字符串的形式, ...
- python软件开发规范&分文件对于后期代码的高效管理
根据本人的学习,按照理解整理和补充了python模块的相关知识,希望对于一些需要了解的python爱好者有帮助! 一.软件开发规范--分文件 当代码存在一个py文件中时: 1.不便于管理 (修改,增加 ...
- python(37)- 软件开发规范
软件开发规范 一.为什么要设计好目录结构? 1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 2 ...
- Python 入门之 软件开发规范
Python 入门之 软件开发规范 1.软件开发规范 -- 分文件 (1)为什么使用软件开发规范: 当几百行--大几万行代码存在于一个py文件中时存在的问题: 不便于管理 修改 可读性差 加载速度慢 ...
随机推荐
- 关于 UIDatePicker 在iOS9 系统上的一个坑
在使用 UIDatePicker时,在iOS9系统上上遇到一个很奇怪的问题,在其他系统版本中没发现,设置年月日格式显示的视图,在iOS9设备上出现中间月份无法显示的问题: 检查代码没问题,这个视图是使 ...
- 关于调用接口 Connection reset 问题(使用代理调接口)
之前调用过别的公司的接口上传数据,但是遇到个问题就是Connection reset,查阅了网上的各种资料,说什么的都有,主要意思就是说发布接口和调用接口的某些配置不一样,但是这个怎么说呢,单方面没办 ...
- 最全BT磁力搜索引擎,国外最受欢迎的BT-磁力网站(整理分享,每日不断更新...)
最全BT磁力搜索引擎索引(整理分享,每日更新) 1.海盗湾 The Pirate Bay 2.磁力天堂(BT磁力搜索下载-磁力天堂) www.btaa.xyz (资源多,下载速度可以,建议用手机访问 ...
- 爬虫(十四):Scrapy框架(一) 初识Scrapy、第一个案例
1. Scrapy框架 Scrapy功能非常强大,爬取效率高,相关扩展组件多,可配置和可扩展程度非常高,它几乎可以应对所有反爬网站,是目前Python中使用最广泛的爬虫框架. 1.1 Scrapy介绍 ...
- Python爬虫解析网页的4种方式 值得收藏
用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存 ...
- map中entrySet和KeySet的区别
- 三大JavaScript框架对比——AngularJS、BackboneJS和EmberJS
<三大JavaScript框架对比——AngularJS.BackboneJS和EmberJS> 本文转载自 作者:chszs,博客主页:http://blog.csdn.net/chs ...
- warning:Pointer is missing a nullability type specifier (__nonnull or __nullable)
当我们定义某个属性的时候 如果当前使用的编译器版本比较高(6.3+)的话经常会遇到这样一个警告:warning:Pointer is missing a nullability type speci ...
- 31 反射方式给类的属性赋值 和 对象赋值(clone)
1.配置类 package com.da.tool.util.configuration.reflect; /** */ public class JobInfo { private String j ...
- cookie、session、localStorage、sessionStorage的区别
cookie的机制 cookie是存储在用户本地终端上的数据.有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密. Cookie是服务器发 ...