• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
武纪亨
博客园    首页    新随笔    联系   管理    订阅  订阅
python内置模块(二)

内容概要

  • random模块

    随机数模块
    
  • os模块

    跟操作系统打交道的模块
    
  • sys模块

    跟python解释器打交道的模块
    
  • 序列化模块

    使用频率最高的(前后端数据交互)
    	json模块
    
  • sunprocess模块

    类似于远程操作工具
    

    内容详细

    random随机数模块

    # import random
    # print(random.random())  # 随机产生一个0-1之间的小数
    # print(random.randint(1,6))  # 随机产生一个1-6之间的整数  可以用于掷骰子
    # print(random.uniform(1,6))  # 随机产生一个1-6之间的小数
    # print(random.choice(['特等奖','一等奖','二等奖','三等奖','谢谢惠顾']))  # 随机抽取一个
    # print(random.sample(['上海市','临汾市','南京市','北京市'],3))  # 随机抽取指定样本量
    # l = [2,3,4,5,6,7,8,9,'J','Q','K','A']
    # random.shuffle(l)
    # print(l)  # 随机打乱容器类型中的诸多元素
    
    # 笔试题
    # 随机验证码可以是由 数字 小写字母 大小写字母 任意组合
    # 编写能够产生五位数的随机验证码
    '''ps:五位 每位都可以是三种情况之一'''
    
    
    # import random
    # def get_code(n):
    #     # 提前定义一个容器储存验证码的变量
    #     code = ''
    #     # 由于需要产生五位 每一位的操作都是一样的 所以肯定需要使用循环
    #     for i in range(n):
    #         # 随机产生一个数字
    #         random_int = str(random.randint(0,9))
    #         # 随机产生一个大写字母
    #         random_upper = chr(random.randint(65,90))
    #         # 随机产生一个小写字母
    #         random_lower = chr(random.randint(97,122))
    #         # 随机选取一个
    #         temp = random.choice([random_int,random_upper,random_lower])
    #         # 拼接到字符串
    #         code += temp
    #     return code
    # code1 = get_code(5)  # 随机生成5位验证码
    # code2 = get_code(7)  # 随机生成7位验证码
    # code3 = get_code(8)  # 随机生成8位验证码
    # print(code1,code2,code3)
    

    os模块

    # 与操作系统打交道
    import os
    
    # 1.创建单机目录()
    # os.mkdir('xxx视频集合')
    # os.mkdir('xxx视频集合\r老师视频作品')  # 报错
    # 2.创建多级目录(文件夹)
    # os.makedirs(r'xxx视频集合\xxxa老师视频合集')
    # 3.删除空目录(文件夹)
    # os.rmdir(r'xxx视频集合')  # 必须是空目录 否则报错
    # os.removedirs(r'xxx视频集合')  # 必须是空目录 否则报错
    # 4.获取当前文件所在的路径(可以嵌套 则为上一层路径)
    # BASE_DIR = os.path.dirname(__file__)
    # print(BASE_DIR)
    # 5.路径拼接(*****)  能够自动识别不同操作系统分隔符问题
    # movie_dir = os.path.join(BASE_DIR,'老师教学视频')
    # # 6.列举出指定路径下的文件名称(任意类型文件)
    # data_movie_list = os.listdir('D:\pycharm11\day21')
    # while True:
    #     for i,j in enumerate(data_movie_list):
    #         print(i+1,j)
    #         choice = input('请输入你想看的文件编号>>>:').strip()
    #         if choice.isdigit():
    #             choice = int(choice)
    #             if choice in range(len(data_movie_list)+1):
    #                 file_name = data_movie_list[choice-1]
    #                 file_path = os.path.join(movie_dir,file_name)
    #                 with open(file_path,'r',encoding='utf8') as f:
    #                     print(f.read())
    # 7.删除一个文件
    # os.remove('a.txt.py')
    # 8.修改文件名称
    # os.rename('老师教学视频','2021教学视频')
    # 9.获取当前工作路径
    # print(os.getcwd())
    # 10.切换路径
    # os.chdir('D:/')
    # with open(r'a.txt','wb') as f:
    #     pass
    # 11.判断当前路径是否存在
    # print(os.path.exists('a.txt'))  # False
    # print(os.path.exists('2021教学视频'))  # True
    # 12.判断当前路径是否是文件
    # print(os.path.isfile('01 课堂练习.py'))  # True
    # print(os.path.isfile('2021教学视频'))  # False
    # 13.判断当前路径是否是文件夹
    # print(os.path.isdir('01 课堂练习.py'))  # False
    # print(os.path.isdir('2021教学视频'))  # True
    # 14.获取文件大小(字节数)
    # print(os.path.getsize(r'a.txt'))
    

    sys模块

    # 主要与python解释器打交道
    
    import sys
    
    # print(sys.path)
    # print(sys.version)
    # print(sys.platform)
    # print(sys.argv)  # 获取当前执行文件的绝对路径
    # try:
    #     username = sys.argv[1]
    #     password = sys.argv[2]
    #     if username == 'jason' and password == '123':
    #         print('正在执行文件内容')
    #     else:
    #         print('用户名或密码错误')
    # except Exception:
    #     print('请输入用户名和密码')
    

    序列化模块

    json格式数据:跨语言传输
        
    import json
    #
    # d = {'username':'jason','pwd' : 123}
    # # 1.将python其他数据转换成json格式字符串(序列化)
    # res = json.dumps(d)
    # print(res,type(res))  # {"username": "jason", "pwd": 123} <class 'str'>
    # # 2.将json格式字符串转成当前语言对应的某个数据类型(反序列化)
    # res1 = json.loads(res)
    # print(res1,type(res1))  # {'username': 'jason', 'pwd': 123} <class 'dict'>
    # bytes_data = b'{"username":"jason","pwd":123}'
    # bytes_str = bytes_data.decode('utf8')
    # bytes_dict = json.loads(bytes_str)
    # print(bytes_dict,type(bytes_dict))  # {'username': 'jason', 'pwd': 123} <class 'dict'>
    """
    暂且可以简单的理解为
        序列化就是将其他数据类型转换成字符串过程
            json.dumps()
        饭序列化就是将字符串转换成其他数据类型
            json.loads()
    """
    # 将字典d写入文件
    # with open(r'a.txt','w',encoding='utf8') as f:
    #     f.write(str(d))
    # # 将字典d取出来
    # with open(r'a.txt','r',encoding='utf8') as f1:
    #     data = f1.read()
    # print(dict(data))
    
    # 将字典d写入文件
    # with open(r'a.txt','w',encoding='utf8') as f:
    #     res = json.dumps(d)
    #     f.write(res)
    # with open(r'a.txt','w',encoding='utf8') as f1:
    #     data = f1.read()
    # res1 = json.loads(data)
    # print(res1,type(res1))
    
    # d1 = {'username':'tony','pwd':123}
    # with open(r'a.txt','w',encoding='utf8') as f:
    #     json.dump(d1,f)
    # with open(r'a.txt','r',encoding='utf8') as f:
    #     res = json.load(f)
    # print(res,type(res))  # {'username': 'tony', 'pwd': 123} <class 'dict'>
    
    # d1 = {'username':'jason好帅','pwd':123}
    # print(json.dumps(d1,ensure_ascii=False))  # {"username": "jason好帅", "pwd": 123}
    """
    并不是所有的数据类型都支持序列化
    json.JSONEncoder  查看支持的数据类型
    """
    

    subprocess模块

    # import subprocess
    
    # """
    # 1.可以基于网络连接上一台计算机(socker模块)
    # 2.连接上的计算机执行我们需要执行的命令
    # 3.将命令的结果返回
    # """
    # 
    # res = subprocess.Popen(
    #                 'tasklist',
    #                 shell=True,
    #                 stdout=subprocess.PIPE,
    #                 stderr=subprocess.PIPE
    #                 )
    
    # print('stdout',res.stdout.read().decode('gbk'))
    # # 获取正确命令执行之后的结果
    # print('stderr',res.stderr.read().decode('gbk'))
    # # 获取错误命令执行之后的结果
    # """
    # windowd电脑内部编码默认为GBK
    # """
    

posted on 2021-11-26 20:38  Henrywuovo  阅读(49)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3