操作文件和目录、序列化

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 @ 2021-07-10 14:02  求知律己  阅读(51)  评论(0编辑  收藏  举报