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


    根据本人的学习,按照理解整理和补充了python模块的相关知识,希望对于一些需要了解的python爱好者有帮助!

    一、软件开发规范——分文件

    当代码存在一个py文件中时:

    1.不便于管理 (修改,增加)
    2.可读性差
    3.加载速度慢

    Django——雏形(约定俗称)

    1.启动文件 启动接口
    2.公共文件 大家需要的功能
    3.配置文件(静态文件) 变量
    4.主逻辑 核心
    5.用户相关数据 账号和密码等文件
    6.日志 记录主要信息,记录开发人员的行为

    高内聚

    1566564722045

    二、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)是创建时间(详细信息参见平台的文档)。
    
  • 相关阅读:
    php之aop实践
    PHP一个类AOP的实现
    PHP系列学习之AOP
    PVE上安装黑裙辉6.2
    安装proxmox VE(PVE)教程
    x-forwarded-for的深度挖掘
    nginx的配置总结,有时间自己整理
    openresty入门文章(笔者自用)
    pve apt-get update error 升级报错-文章未完工和验证
    pve proxmox 常见问题,perl warning
  • 原文地址:https://www.cnblogs.com/shenhongbo/p/11403075.html
Copyright © 2020-2023  润新知