一:random随机模块

  1. import random
  2. random 随机产生一个0-1之间的小数
  3. print(random.random())
  4. 结果:0.2726960869606466
  5. randint 随机产生一个1-6之间的整数 掷骰子
  6. print(random.randint(1,6))
  7. uniform 随机产生一个1-6之间的小数
  8. print(random.uniform(1,6))
  9. 结果:1.3550922201541318
  10. choice 随机抽取一个
  11. print(random.choice(['特等奖' '一等奖' '二等奖' '谢谢回顾' '再来一次']))
  12. sample 随机抽取(尾部数量)指定样本量
  13. print(random.sample(['安徽省' '江苏省' '山东省', '海南省' '广东省' '河南省'], 3))
  14. 随机打乱容器类型中的诸多元素
  15. l = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']
  16. random.shuffle(l) 随机打乱容器内元素
  17. print(l)
  18. 结果:['K', 'J', 2, 6, 9, 'A', 10, 5, 'Q', 8, 4, 7, 3]

二:os模块

  1. 与操作系统打交道
  2. import os

1.创建单层目(文件夹)一次只能创建一个文件夹

  1. os.mkdir('XXX老师精品课程')

2.创建多级目录(文件夹)一次可以创建多个

  1. os.makedirs(r'xxx视频合集\r老师视频作品\2021选集')

3.删除空目录(文件夹)

  1. 删除很有局限性 必须要空文件夹才可以,文件夹内没有数据才可以删除
  2. os.rmdir(r'xxx视频目录')

4.删除多层目录

  1. 删除很有局限性 必须要空文件夹才可以,文件夹内没有数据才可以删除os.removedirs(r'xxx视频合集')
  2. alis 别名 允许删除不记录
  1. 删除很有局限性 必须要空文件夹才可以,文件夹内没有数据才可以删除os.removedirs(r'xxx视频合集')
  2. alis 别名 允许删除不记录

5.删除一个文件(不是文件夹)

  1. os.remove('a.txt')

6.修改文件名称

  1. os.rename('老文件名', '新文件名')

7.获取当前工作路径

  1. print(os.getcwd())

8.切换路径

  1. os.chdir('D:/')
  2. with open(r'a.txt', 'wb') as f:
  3. pass

9.判断当前路径是否存在(任意类型)只判断路径是否存在

  1. (os.path.exists('文件名'))
  2. print(os.path.exists('a.txt'))

10.判断当前路径是否是文件(只判断文件)

  1. (os.path.isfile('文件'))
  2. print(os.path.isfile('rang.py'))​

11.判断当前路径是否是文件夹(只判断文件夹)

  1. (os.path.isdir('文件夹'))
  2. print(os.path.isdir('老师教学视频'))

12.获取文件大小(文件内多少KB,GB)就是字节数

  1. print(os.path.getsize(r'a.txt'))

三:文件处理选择任意视频

  1. 获取当前文件所在的路径(可以嵌套 则为上一层路径)
  2. BASE_DIR =os.path.dirname(__file__)
  3. 路径拼接(******) 能够自动识别不同操作系统分隔符问题(不同系统通用)
  4. movie_dir = os.path.join(BASE_DIR,'老师教学视频')
  5. 用户选择想看的视频
  6. 列举出指定路径下的文件名称(任意类型文件)
  7. data_movie_list = os.listdir('D:\计算机知识存储\os模块\老师教学视频')
  8. 循环
  9. while True:
  10. 循环 枚举默认加索引 从零开始
  11. for i, j in enumerate(data_movie_list):
  12. print(i+1, j)
  13. choice = input('请选择你想要看的文件编号:').strip()
  14. 判断必须是纯数字
  15. if choice.isdigit():
  16. choice = int(choice)
  17. 判断用户输入 范围 统计0-5之间
  18. if choice in range(len(data_movie_list)+1):
  19. 获取编号对应的文件名称
  20. file_naem = data_movie_list[choice-1]
  21. 拼接文件的完整路径(****)
  22. file_path = os.path.join(movie_dir,file_naem) 专门用于路径拼接 并且能够自动识别当前操作系统的路径分隔符
  23. 利用文件操作读写文件
  24. with open(file_path, 'r',encoding='utf8') as f:
  25. print(f.read())

四:sys模块

  1. 主要与python解释器打交道
  2. import sys
  3. 1.系统变量 系统路径
  4. print(sys.path)
  5. 2.当前解释器版本
  6. print(sys.version)
  7. 3.平台版本
  8. print(sys.platform)
  9. 4.当前执行文件的路径(绝对路径)
  10. print(sys.argv)

五:实现文件执行加密操作

  1. 实现文件执行加密操作
  2. 异常捕获
  3. try:
  4. username = sys.argv[1]
  5. password = sys.argv[2]
  6. if username == 'jason' and password == '123':
  7. print('正常执行文件内容')
  8. print('洗脚按摩')
  9. else:
  10. print('错误')
  11. except Exception:
  12. print('请输入用户名和密码:')
  13. print('目前只能让您(游客模式)')
  14. 加密操作:
  15. 'D:\计算机知识存储\os模块\os模块.py 路径
  16. python 路径 用户密码

六:json 序列化模块

  1. json格式数据:跨语言传输
  2. import json
  3. json跨语言传输
  4. 1.不同的语言之间做数据交互场景
  5. 2.将其他类型数据转换成字符串 将字符串转换成json格式 之后转换成二进制基于网络发送
  6. 3.在公司写程序都是前后端分离的 你写好一个程序之后 别的程序语言来调你 朝你要数据 这个时候通用的格式就是json格式

七:json序列化 反序列化

  1. import json
  2. d = {'username':'jason', 'pwd':123}
  3. # 将其他数据类型转换成json格式字符串 是json格式字符串(序列化)
  4. res = json.dumps(d)
  5. 双引号json格式字符串的标识
  6. print(res,type(res))
  7. 结果:{"username": "jason", "pwd": 123} 双引号是json格式独有的
  8. json格式字符串转成当前语言对应的某个数据类型(反序列化)
  9. json格式 转换 回对应的某个类型形式
  10. res1 = json.loads(res)
  11. print(res1,type(res1))
  12. 结果:{'username': 'jason', 'pwd': 123} 单引号字典
  13. 比如说这个字符串是别人基于网络发给我的 这个字符串是个bytes类型
  14. 由于里面没有中文所有只加个b
  15. bytes_data = b'{"username": "jason", "pwd": 123}'
  16. # 将bytes类型转换成json格式类型
  17. bytes_str = bytes_data.decode('utf8')
  18. # 将json格式类型转换当前语言对应的某个数据类型
  19. bytes_dict = json.loads(bytes_str)
  20. print(bytes_dict, type(bytes_dict))
  21. 结果:{'username': 'jason', 'pwd': 123} <class 'dict'>

八:json 文件写读方式

  1. 暂且可以简单的理解为
  2. 序列化就是将其他数据类型转换成字符串过程
  3. json.dumps()
  4. 反序列化就是将字符串转换成其他数据类型
  5. json.loads()

九:dumps/loabs与dump/loab两者区别

1.dumps模式
  1. d = {'username': 'jason', 'pwd':123}
  • 案例需求
  1. 1.只有字符串形式才能存放入文件
  2. 2.将字典存入文本文件 再取出来
  3. 所以:
  4. 可以用到 (序列化) (反序列化)
  1. # 将字典d写入文件 转成json格式字符串 (序列化)
  2. with open(r'a.txt', 'w', encoding='utf8') as f:
  3. # 将其他数据类型转换成json格式字符串 是json格式字符串
  4. res = json.dumps(d)
  5. # 将转换成的字符串写入文件
  6. f.write(res)
  • 输出结果:
  1. print(res) 结果: {"username": "jason", "pwd": 123}
2.loads 读模式
  1. # 将字典d读出来
  2. with open(r'a.txt', 'r', encoding='utf8') as f1:
  3. # 将文件内数据读出赋值
  4. data = f1.read()
  5. # 将json格式 转换 回对应的某个类型形式
  6. res1 = json.loads(data)
  • 输出结果
  1. print(res1,type(res1)) 结果: {'username': 'jason', 'pwd': 123}
3.dump 写模式
  1. d = {'username': 'jaso', 'pwd':123}
  2. # 写入字典
  3. with open(r'a.txt', 'w', encoding='utf8') as f:
  4. # 将其他数据类型转换成json格式字符串 存入字典
  5. json.dump(d,f)

  1. json.dump 写模式 将两步合为一步
4.load 读模式
  1. 读出字典
  2. with open(r'a.txt', 'r', encoding='utf8') as f:
  3. 将文件内数据读出赋值 json格式 转换 回对应的某个类型形式
  4. res = json.load(f)
  5. print(res,type(res))
  • load 读模式 将两步合为一步

十:load与loads区别

  1. json.loads
  1. # 将文件读出来
  2. with open(r'a.txt', 'r', encoding='utf8') as f1:
  1. 作用:
  2. 1.先将文件内数据读出赋值
  3. data = f1.read()
  4. 2. json格式 转换 回对应的某个类型形式
  5. json.loads(data)
  1. json.load
  1. 作用:
  2. 1.将文件内数据读出 json格式 (反序列化)转换回对应的某个类型
  3. json.load(f)
  1. json在序列化的时候 如果你不符合ASCII
  2. d1 = {'username': 'tony好帅哦 我好喜欢', 'pwd': 123,'hobby':[11,22,33]}
  3. print(json.dumps(d1,ensure_ascii=False))

九:subprocess模块

  1. import subprocess
  2. 1.可以基于网络连接上一台计算机(socket模块)
  3. 2.让连接上的计算机执行我们需要执行的命令
  4. 3.将命令的结果返回
  5. 这个方法可以帮你远程按操作一些机器了
  6. 基于网络可以远程操作
  7. tasklist 查看计算机哪些程序在运行 linux命令查看哪些程序在跑着
  8. subprocess.Popen('放要执行的命令')
  9. res = subprocess.Popen('tasklist',
  10. 固定参数 True 固定的
  11. shell=True,
  12. 产生的执行参数的结果 丢到这里面 stdout stderr 这里面管道的意思
  13. 产生之后 基于网络发给我
  14. stdout=subprocess.PIPE,
  15. 产生的执行参数的结果 丢到这里面 stdout stderr 这里面管道的意思
  16. 产生之后 基于网络发给我
  17. stderr=subprocess.PIPE
  18. )
  19. 这个数据不支持 utf8
  20. 在国内的win电脑底层支持gbk
  21. stdout 拿正确的结果 read 读它 decode 解码
  22. print('stdout', res.stdout.read().decode('gbk')) 获取正确命令执行之后的结果
  23. stderr 拿错误的结果 只要不解码 就是二进制形势
  24. print('stderr', res.stderr.read().decode('gbk')) 获取错误命令执行之后的结果

json模块 os模块 文件加密的更多相关文章

  1. 07 json与os模块(进阶)

    json和os模块 阶段一 .数据交换 1.json的基本介绍 JSON全名是JavaScript Object Notation(即:JavaScript对象标记)它是JavaScript的子集. ...

  2. Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块

    Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: ​ 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...

  3. day13 函数模块之序列化 random 模块 os模块 sys模块 hashlib模块 collections模块

    json import json dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 ...

  4. day 20 collection模块 time 模块 os 模块

    一.collection模块 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要 ...

  5. python常用模块: random模块, time模块, sys模块, os模块, 序列化模块

    一. random模块  import random # 任意小数 print(random.random()) # 0到1的任意小数 print(random.uniform(-10, 10)) # ...

  6. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  7. random模块 os模块

    # random# import random# random.random() # 大于0且小于1之间的小数# random.randint() # 大于等于1且小于等于3之间的整数# random ...

  8. Python学习第十二课——json&pickle&XML模块&OS模块

    json模块 import json dic={'name':'hanhan'} i=8 s='hello' l=[11,22] data=json.dumps(dic) #json.dumps() ...

  9. python模块-OS模块详解

    1.按字母分 os相关的函数:143个.按字母排序如下: ['abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'clo ...

随机推荐

  1. Interviewe(hdu3486)

    Interviewe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  2. 【LeetCode】673. Number of Longest Increasing Subsequence 解题报告(Python)

    [LeetCode]673. Number of Longest Increasing Subsequence 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https:/ ...

  3. Redis -使用 Bitmap

    redis数据类型 String.Set.Zset.List.hash       Bitmap . 四种统计类型: 二值状态统计: 聚合统计: 排序统计: 基数统计 二值状态统计: 就是集合中的元素 ...

  4. matplotlib 进阶之Constrained Layout Guide

    目录 简单的例子 Colorbars Suptitle Legends Padding and Spacing spacing with colobars rcParams Use with Grid ...

  5. 想看Vue文档,cn放错位置,误入xx网站...

    昨晚,DD在微信群(点击加入)里看到有小伙伴说,想去Vue官网看中文文档,不当心把cn写错了位置,结果进入了xx网站... 老司机们应该都知道,Vue官网的中文文档地址是:https://cn.vue ...

  6. Docker如何制作镜像-Dockerfile的使用

    1:什么是Dockerfile Dockerfile是一个文本文档,可以通过docker build 命令构建成一个镜像. 我们可以在Dockerfile中定义一系列的命令,构建出我们想要的镜像. 想 ...

  7. Java练习小题_求一个3*3矩阵对角线元素之和,矩阵的数据用行的形式输入到计算机中 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

    要求说明: 题目:求一个3*3矩阵对角线元素之和,矩阵的数据用行的形式输入到计算机中 程序分析:利用双重for循环控制输入二维数组,再将 a[i][i] 累加后输出. 实现思路: [二维数组]相关知识 ...

  8. 【MySQL作业】DDL 和 DML——美和易思使用 DDL 维护数据库表结构应用习题

    点击打开所使用到的数据库>>> 1.使用 DDL 语句修改 easyShopping 商品表 goods 表结构,要求如下: 新增字段生产厂商 manufacturer,它的类型为 ...

  9. 【MySQL作业】外连接查询——美和易思外连接查询应用习题

    点击打开所使用到的数据库>>> 1.使用左接获取所有客户的基本信息以及订购信息,要求输出客户姓名.电话.订单 ID 和下单时间. 由于需要获取所有客户的基本信息,如果采用左连接加以实 ...

  10. .NET 编码的基础知识

    .NET 编码的一些基本概念和分析 简单的类型概念 Hex (16进制) byte 字节 范围是:0~255,二进制下的范围就是00000000~11111111,相当于1字节. byte[] 字节数 ...