操作文件和目录、序列化

1.通过os模块和os.path模块可以清楚的了解自己的Python模块

2.通过语句os.name查询自己电脑的操作系统

3.os.environ语句可以查询所有的环境配置,os.environ.get('key')查询某个环境变量

4.os.path.abspath('.')语句查询当前目录的所有文件和目录

5.os.path.split()和os.path.splitext()以及os.path.join()语句将路径拆开合并

6.os.rename()和os.remove()修改文件的名字和删除文件的名字

7.序列化就是把变量从内存中变成可存储可传输的过程,在Python中叫做pickle

8.将变量从对象中读到内存的过程就被称为反序列化

9.将对象序列化写入文件

第一步先导入import pickle语句

再创建一个字典,最后将字典变量传入pickle.dumps()函数输出

10.pickle.dumps()函数将任意对象序列化成bytes

12.pickle.loads()函数将可读变量反序列化为对象

13.由于由于多语言之间需要传递对象,必须把对象序列化为标准格式,Python提供了一种模式那就是JSON

它可以讲不同Python与JS联系在一起传递对象

14.当进行序列化的时候我们通常通过类来实现

这时需要定以初始化类的函数,

import json
class Student(object)"
  def __init__(self,name,age,score):
    self.name = name
    self.age = age
    self.score = score
s = Student('Bean',20,88)
print(json.dumps(s))

以及在类外定义一个序列化函数,将数据传进去。再设置可选参数default将方法名传入输出语句的json.dumps()里面

def student2dict(std):
  retuern{
    'name':std.name,
    'age':std.age,
    'score':std.score
}

15.如果是多类序列化的时候,我们需要将任意类改为dict

print(json.dumps(s,default = lambda:obj obj.__dict__ ))

16.如果需要反序列化为Student对象,可以通过loads()函数转换成一个dict

def dict2student(d):
  return Student(d['name'],d['age'],d['score'])
print(json.loads(json_str,object_hook = dict2student))

通过函数object_hook函数将dict转换为对象



posted @   求知律己  阅读(51)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示