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

二、sys
sys python解释器做交互
import sys
print(sys.path) # 模块查找的顺序
print(sys.argv) # 只能在终端执行,第一个元素是本身路径,列表形式
print(sys.modules) # 查看加载到内存的模块
print(sys.platform) # 查看当前操作系统平台mac - darwin win - win32
print(sys.version) # 查看python当前版本信息
扩展知识:
mac -- linux 查看 ls 苹果系统
win 查看 dir Windows系统
可以用来判断,已达到系统操作兼容
三、序列化
1.json
4个方法2组
dumps loads ——用于网络传输
dump load ——用于文件存储
将数据类型转换成字符串(序列化),将字符串转成原数据类型(反序列)
能够序列:字典,列表,元组序列后变成列表
import json
dic = {"key":1}
a = json.dumps(dic)
print(a, type(a)) #将数据类型转换成字符串(序列化)
结果:{"key": 1} <class 'str'>
a1 = json.loads(a)
print(a1, type(a1)) #将字符串重新转为原数据类型(反序列化)
结果:{'key': 1} <class 'dict'>
f = open("a", "a", encoding="utf-8")
a = json.dump(dic, f) # 将原数据类型转换成字符串,写入到文件
print(a,type(a))
结果:{"key": 1} <class 'str'>
f = open("a", "r", encoding="utf-8")
a1 = json.load(f) #将文件中的字符串转换成原数据类型
print(a1,type(a1)) #a1["key"] = 1,a1为字典的键
结果:{'key': 1} <class 'dict'>
在文件中如果写入多行——"\n"
import json
dic = {"key": 1}
f = open("a", "a", encoding="utf-8")
f.write(json.dumps(dic) + "\n") #字符串 + "\n"
f.write(json.dumps(dic) + "\n")
f.write(json.dumps(dic) + "\n")
结果:{"key": 1} #写入文件的字符串
{"key": 1}
{"key": 1}
2.pickle
只有python有,几乎可以序列python中所有数据类型,匿名函数不能序列,函数可以
import pickle
def func():
print(1)
import pickle
a = pickle.dumps(func) #将原数据类型转换成类似字节的内容
结果:b'\x80\x03c__main__\nfunc\nq\x00.'
print(pickle.loads(a)) #将类似字节的内容转换成原数据类型
结果:<function func at 0x000001BBFF7060D0>
四、os (文件夹 文件 路径)
import os #os是和操作系统做交互,给操作发指令
print(os.getcwd()) # 获取当前文件工作的路径
os.chdir(" ") #路径切换
os.curdir 返回当前目录: ('.') **
os.pardir 获取当前目录的父目录字符串名:('..') **
文件夹相关
os.mkdir("a2") # 创建文件夹 a2为要创建的文件夹
os.rmdir("a2") # 删除文件夹
os.makedirs("a1/a2/a3") # 递归创建多级文件夹
os.removedirs("a1/a2/a3") # 递归删除文件夹
print(os.listdir(r"路径")) #查看当前文件下的所有内容
文件相关
os.remove(r"路径") #删除文件,彻底删除 找不回来
os.rename() #重命名
os.stat('path/filename') 获取文件/目录信息 **
路径相关
路径
os.path.abspath("py文件") # 返回的是绝对路径
os.path.split(r"路径") #将路径分割成一个路径和一个文件名
os.path.dirname(r"路径") # 获取到父目录
os.path.basename(r"路径") #获取文件名
os.path.join() # 路径拼接(非常重要)
判断
os.path.exists() #判断当前路径是否存在
os.path.isabs() #判断是不是绝对路径
os.path.isdir() #判断是不是文件夹
os.path.isfile() #判断是不是文件
os.path.getsize() #获取文件大小
os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间 **
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 **
os.path.getsize(path) 返回path的大小 ***
操作系统相关(了解)
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" *
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为: *
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix' *
# 和执行系统命令相关
os.system("bash command") 运行shell命令,直接显示 **
os.popen("bash command).read() 运行shell命令,获取执行结果 **
os.environ 获取系统环境变量 **
os.stat('path/filename') 获取文件/目录信息 的结构说明(了解)
stat 结构:
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
python软件开发规范&分文件对于后期代码的高效管理的更多相关文章
- [ python ] 软件开发规范
在python开发中,我们建议采用如下规范: soft/ ├── bin # 程序执行文件目录 │ ├── __init__.py │ └── start.py # 程序开始执行脚本文件 ├─ ...
- Python软件开发规范
bin 整个程序的执行路口 start.py conf 配置文件 setting.py lib 库 模块与包 common.py sql.py core 核心逻辑 ...
- Python 入门之 软件开发规范
Python 入门之 软件开发规范 1.软件开发规范 -- 分文件 (1)为什么使用软件开发规范: 当几百行--大几万行代码存在于一个py文件中时存在的问题: 不便于管理 修改 可读性差 加载速度慢 ...
- python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)
一.昨日作业讲解 先来回顾一下昨日的内容 1.os模块 和操作系统交互 工作目录 文件夹 文件 操作系统命令 路径相关的 2.模块 最本质的区别 import会创建一个专属于模块的名字, 所有导入模块 ...
- Python模块的导入以及软件开发规范
Python文件的两种用途 1 . 当脚本直接使用,直接当脚本运行调用即可 def func(): print("from func1") func() 2 . 当做模块被导入使用 ...
- Python 3 软件开发规范
Python 3 软件开发规范 参考链接 http://www.cnblogs.com/linhaifeng/articles/6379069.html#_label14 对每个目录,文件介绍. #= ...
- python(37)- 软件开发规范
软件开发规范 一.为什么要设计好目录结构? 1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 2 ...
- Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型)
Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶软件开发规范 六个目录: #### 对某 ...
- python中软件开发规范,模块,序列化随笔
1.软件开发规范 首先: 当代码都存放在一个py文件中时会导致 1.不便于管理,修改,增加 2.可读性差 3.加载速度慢 划分文件1.启动文件(启动接口)--starts文件放bin文件里2.公共文件 ...
随机推荐
- Eureka 系列(08)心跳续约与自动过期
Eureka 系列(08)心跳续约与自动过期 [TOC] Spring Cloud 系列目录 - Eureka 篇 在上一篇 Eureka 系列(07)服务注册与主动下线 中对服务的注册与下线进行了分 ...
- zabbix--自带模板监控MySQL服务
zabbix有内置的模板,不过需要修改下配置,配置文件路径在: [root@localhost ~]# cd /etc/zabbix/ [root@localhost zabbix]# ls web ...
- Java菜鸟笔记
System.out.println( ); 会在输出完毕后自动换行 System.out.print( ); 在输出完毕后不会自动换行 MyEclipse/Eclipse快捷键: 定位到某一行, ...
- 出现异常: 非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复: required
在将web.config文件中的<add key="ClientValidationEnabled" value="false" /> 设为fals ...
- Android应用图标尺寸规范(转)
转自:http://blog.sina.com.cn/s/blog_4b20ae2e0101h84o.html Android Icon Size and Location for Apps DENS ...
- ZedGraph怎样在生成曲线时随机生成不一样的颜色
场景 在使用ZedGraph生成多条曲线时为了能区分曲线颜色,要求随机设置曲线颜色. 首先从System.Drawing.Color中获取所有颜色的对象的数组,然后将其顺序打乱随机排序,然后在生成曲线 ...
- SqlServer 将表里面的值赋给变量
@@c_beiz varchar(500) select top 1 @c_beiz = c_beiz from g_billd_qh_tmp where u_id=''+@uid+'' and io ...
- tengine日志切割-配置分钟级别日志自动切割
tengine日志切割-配置分钟级别日志自动切割 安装 以安装最新版本的tengine-2.1.2版本 下载连接 tengine支持许多变量 变量 $conn_requests 当前请求在长连接上的序 ...
- pip install RISE报错解决
ERROR: Cannot uninstall 'tornado' ERROR: Cannot uninstall 'tornado'. It is a distutils installed pro ...
- Uninstall NetBeans
There will be a file named uninstall.sh in /usr/local/netbeans-x.x if you installed netbeans with ro ...