1.软件开发规范 – 分文件
当代码存在一个py文件中时:
1.不便于管理 修改 增加
2.可读性差
3.加载速度慢
Django – 雏形:
约定俗称:
1.启动文件 启动接口
2.公共文件 大家需要的功能
3.配置文件 (静态文件) 变量
4.主逻辑 核心
5.用户相关数据 账号和密码等文件
6.日志 记录主要信息,记录开发人员的行为
2. sys python解释器做交互:
import sys
print(sys.path) 模块查找的顺序 ***
print(sys.argv) 只能在终端执行,可以携带参数 **
print(sys.modules) 查看加载到内存的模块
print(sys.platform) 查看当前操作系统平台 mac - darwin win - win32 **
print(sys.version) 查看当前解释器的版本
mac -- linux 查看 ls
win dir
3. 序列化:
json:
4个方法 2组:
dumps -- 将数据类型转换为字符串
loads -- 将字符串转换为元数据类型
dump -- 将数据类型转换为字符串,写入文件中
load -- 将文件中字符串读取出来,转换为元数据类型
dumps loads -- 用于网络传输
dump load -- 用于文件存储
load 和 loads -- 只能读取一个数据类型,一行中只有一个数据类型就没有问题
dic = {"key": 1}
lst = [1,2,3,4]
手写
new_dic = {}
k,v = dic.replace("{","").replace("}","").replace('"',"").split(":")
new_dic[k] = v
print(new_dic["key"])
pickle:
dumps -- 将数据类型转换为类似字节
loads -- 将类似字节转换为元数据类型
dump -- 将数据类型转换为类似字节,写入文件中(写文件是不能换行)
load -- 将文件中类似字节读取出来,转换为元数据类型
# 只有python有,几乎可以序列python中所有数据类型,匿名函数不能序列
# import pickle
# def func():
# print(1)
#
# a = pickle.dumps(func) # 将原数据类型转换成类似字节的内容
# print(pickle.loads(a)) # 将类似字节的内容转换成原数据类型
import json: # 重点
# s = json.dumps(dic)
# print(s,type(s))
#
# d = json.loads(s)
# print(d,type(d))
# s = json.dumps(lst) # 序列
# l = json.loads(s) # 反序列
# print(l,type(l))
# import json
# def func():
# print(11)
#
# print(json.dumps(func))
# 将数据类型转换成字符串(序列化),将字符串转成原数据类型(反序列)
# 能够序列: 字典,列表,元组序列后变成列表
# dic = {"key":1}
# json.dump(dic,open("a","a",encoding="utf-8"))
# 将源数据类型转换成字符串,写入到文件中
# print(json.load(open("a","r",encoding="utf-8"))['key'])
# 将文件中字符串转成源数据类型
# dic = {"key":"宝元"}
# f = open("a","a",encoding="utf-8")
# f.write(json.dumps(dic)+"\n")
# f.write(json.dumps(dic)+"\n")
# f.write(json.dumps(dic)+"\n")
# f.write(json.dumps(dic)+"\n")
#
# f1 = open("a","r",encoding="utf-8")
# for i in f1:
# print(json.loads(i),type(json.loads(i)))
# dic = {"meet":27,"太白":30,"alex":36,"wusir":33}
# print(json.dumps(dic,ensure_ascii=False,sort_keys=True))
os:
工作路径:
import os # os是和操作系统做交互,给操作发指令
# print(os.getcwd()) # 获取当前文件工作的路径 ***
# os.chdir("D:\Python_s25\day16") # 路径切换 **
# print(os.curdir) # .
# print(os.pardir) # ..
文件夹: ****
# os.mkdir("a2") # 创建文件夹
# os.rmdir("a2") # 删除文件夹
# os.makedirs('a1/a2/a3') # 递归创建文件夹
# os.removedirs("a1/a2/a3") # 递归删除文件夹
# print(os.listdir(r"D:\Python_s25\day17")) # 查看当前文件下所有的内容
文件: ****
# os.remove(r"D:\Python_s25\day17\a") #删除文件,彻底删除 找不回来
# os.rename() # 重命名
路径:
# print(os.path.abspath("test")) # 返回的是绝对路径 ***
# print(os.path.split(r"D:\Python_s25\day17\test")) # 将路径分割成一个路径和一个文件名 **
# print(os.path.dirname(r"D:\Python_s25\day17\test")) # 获取到父目录 ***
# print(os.path.basename(r"D:\Python_s25\day17\test")) # 获取文件名 **
# print(os.path.join("D:\Python","day17","test")) # 路径拼接 ***(非常重要)
判断:
print(os.path.exists()) # 判断当前路劲是否存在
print(os.path.isabs()) # 判断是不是绝对路径
print(os.path.isdir()) # 判断是不是文件夹
print(os.path.isfile()) # 判断是不是文件
print(os.path.getsize()) # 获取文件大小
print(os.path.getsize()) # 获取文件大小
使用方法:
# print(os.path.exists(r"D:\Python_s25\day17\blog")) # 判断当前路劲是否存在 **
# print(os.path.isabs(r"D:\Python_s26\day17\blog")) # 判断是不是绝对路径 **
# print(os.path.isdir(r"D:\Python_s25\day17\blog")) # 判断是不是文件夹 **
# print(os.path.isfile(r"D:\Python_s25\day17\blog")) # 判断是不是文件 **
# print(os.path.getsize(r"D:\Python_s25")) # 获取文件大小 ***
# print(os.path.getsize(r"D:\Python_s25\day17\01 今日内容.py")) # 获取文件大小