zoukankan      html  css  js  c++  java
  • 模块三,json模块 pickle模块 , subprocess 子进程模块

    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
  • 相关阅读:
    使用RationalRose画活动图
    使用RationalRose画用例图
    UML工具RationalRose下载和安装
    使用BootStrap布局网站首页
    BootStrap入门
    使用JQuery发送请求局部刷新页面
    使用JQuery完成表单的校验(扩展)
    Window 由于未经处理的异常,进程终止。
    MySQL数据类型DECIMAL用法
    推荐收藏 —— MySQL视图详细介绍
  • 原文地址:https://www.cnblogs.com/Fzhiyuan/p/11210559.html
Copyright © 2011-2022 走看看