操作文件和目录、序列化
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转换为对象