模块三,json模块 pickle模块 , subprocess 子进程模块

it2022-05-09  27

1,json模块 Json模块提供了四个功能:dumps、dump、loads、load 序列化 序列:字符串 序列化:其他数据类型转换成字符串的过程 写入文件的数据必须是字符串 基于网络传输的数据必须是二进制 序列化:其他数据类型转成字符串的过程 反序列化:字符串转成其他数据类型 json模块(******) 所有的语言都支持json格式 支持的数据类型很少 字符串 列表 字典 整型 元组(转成列表) 布尔值 pickle模块(****) 只支持python python所有的数据类型都支持 dumps:序列化 将其他数据类型转成json格式的字符串 loads:反序列化 将json格式的字符串转换成其他数据类型 json格式的字符串 必须是双引号 >>>: '{"name": "jason"}' 案列: with open('userinfo','w',encoding='utf-8') as f: json.dump(d,f) # 装字符串并自动写入文件 json.dump(d,f) # 装字符串并自动写入文件 with open('userinfo','r',encoding='utf-8') as f: res1 = json.load(f) # 不能够多次反序列化 res2 = json.load(f) print(res1,type(res1)) print(res2,type(res2))pickle模块 用pickle操作文件的时候 文件的打开模式必须是b模式 pickle,用于python特有的类型 和 python的数据类型间进行转换 pickle模块提供了四个功能:dumps、dump(序列化,存)、 loads(反序列化,读)、load (不仅可以序列化字典,列表...可以把python中任意的数据类型序列化) import pickle d = {'name':'jason'} res = pickle.dumps(d) # 将对象直接转成二进制 print(pickle.dumps(d)) res1 = pickle.loads(res) print(res1,type(res1)) 文件案列: with open('userinfo_1','wb') as f: pickle.dump(d,f) with open('userinfo_1','rb') as f: res = pickle.load(f) print(res,type(res))subprocess 子进程模块 1.用户通过网络连接上了你的这台电脑 2.用户输入相应的命令 基于网络发送给了你这台电脑上某个程序 3.获取用户命令 里面subprocess执行该用户命令 4.将执行结果再基于网络发送给用户 这样就实现 用户远程操作你这台电脑的操作 while True: cmd = input('cmd>>>:').strip() import subprocess obj = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) # print(obj) print('正确命令返回的结果stdout',obj.stdout.read().decode('gbk')) print('错误命令返回的提示信息stderr',obj.stderr.read().decode('gbk')) 子进程 进程;一个正在运行中的程序 进程的进程,即由另一个进程开启的进程,a在运行过程中开启了b,b就是a的子进程 为什么要开启子进程:一个程序在运行过程中有一个任务自己做不了,或者不想做,就需要另一个进程来帮助其完成任务 可以理解为用于执行系统指令的模块 1,参数即指令 你的指令或者某个exe文件" 2,是否是一个指令 3,错误输出管道 stderr=subprocess.PIPE 4,输入管道 stdin=subprocess.PIPE 5,输出管道 stdout=subprocess.PIPE

转载于:https://www.cnblogs.com/Fzhiyuan/p/11210559.html


最新回复(0)