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)是创建时间(详细信息参见平台的文档)。

原文地址:https://www.cnblogs.com/shenhongbo/p/11403075.html

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

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

Python 软件开发规范

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

python—软件开发规范目录

软件开发必须要有的目录: luffy(项目名)#下面是根目录 #日志目录 log #配置文件目录 conf #程序核心文件目录 core # 也可以是luffy(要求小写) #带第三方的库 libs/modules #文档库 docs #告诉别人你的文件如何安装,使用,运行 REAMME #程序的入口(启动脚本),Linux上是bin目录 bin /luffy-server.py #这个目录不写业务逻辑之类的,通过这个入口调用其它的文件   原文地址:https://www.cnblogs.co

python软件开发规范

目录结构目录结构意味着逻辑. 五大分支:bin,modules,db,conf,log 还有加上lib 每个文件夹都有一个__init__.py core 为入口程序目录,特有文件main.py conf为配置文件目录,特有文件setting.py log 为日志记录文件,特有相关以后缀名 .log结尾的多个日志文件 db则是存放数据文件 setting.py配置进入conf的setting.py文件,配置好根目录路径,数据库的存储方式和存储路径BASE_DIR = os.path.dirnam

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

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

1.软件开发规范 首先: 当代码都存放在一个py文件中时会导致 1.不便于管理,修改,增加 2.可读性差 3.加载速度慢 划分文件1.启动文件(启动接口)--starts文件放bin文件里2.公共文件(大家需要的功能)---放lib文件夹里3.配置文件(静态文件)变量--放conf文件夹里4.主逻辑(核心)---函数,类等等,src.py--放core文件夹里5.用户相关数据--账号密码等文件 register--放db文件夹里6.日志----记录主要信息,记录开发人员的行为---logg.lo

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

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

python 软件目录规范

软件目录结构规范 软件开发规范 一.为什么要设计好目录结构? 1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下.这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好. 二.目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结

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

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

模块,包,软件开发规范

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