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

二:os模块
与操作系统打交道
import os
1.创建单层目(文件夹)一次只能创建一个文件夹
os.mkdir('XXX老师精品课程')
2.创建多级目录(文件夹)一次可以创建多个
os.makedirs(r'xxx视频合集\r老师视频作品\2021选集')
3.删除空目录(文件夹)
删除很有局限性 必须要空文件夹才可以,文件夹内没有数据才可以删除
os.rmdir(r'xxx视频目录')
4.删除多层目录
删除很有局限性 必须要空文件夹才可以,文件夹内没有数据才可以删除os.removedirs(r'xxx视频合集')
alis 别名 允许删除不记录
删除很有局限性 必须要空文件夹才可以,文件夹内没有数据才可以删除os.removedirs(r'xxx视频合集')
alis 别名 允许删除不记录
5.删除一个文件(不是文件夹)
os.remove('a.txt')
6.修改文件名称
os.rename('老文件名', '新文件名')
7.获取当前工作路径
print(os.getcwd())
8.切换路径
os.chdir('D:/')
with open(r'a.txt', 'wb') as f:
pass
9.判断当前路径是否存在(任意类型)只判断路径是否存在
(os.path.exists('文件名'))
print(os.path.exists('a.txt'))
10.判断当前路径是否是文件(只判断文件)
(os.path.isfile('文件'))
print(os.path.isfile('rang.py'))
11.判断当前路径是否是文件夹(只判断文件夹)
(os.path.isdir('文件夹'))
print(os.path.isdir('老师教学视频'))
12.获取文件大小(文件内多少KB,GB)就是字节数
print(os.path.getsize(r'a.txt'))

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

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

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

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

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

八:json 文件写读方式
暂且可以简单的理解为
序列化就是将其他数据类型转换成字符串过程
json.dumps()
反序列化就是将字符串转换成其他数据类型
json.loads()
九:dumps/loabs与dump/loab两者区别
1.dumps模式
d = {'username': 'jason', 'pwd':123}
- 案例需求
1.只有字符串形式才能存放入文件
2.将字典存入文本文件 再取出来
所以:
可以用到 (序列化) 和 (反序列化)
# 将字典d写入文件 转成json格式字符串 (序列化)
with open(r'a.txt', 'w', encoding='utf8') as f:
# 将其他数据类型转换成json格式字符串 是json格式字符串
res = json.dumps(d)
# 将转换成的字符串写入文件
f.write(res)
- 输出结果:
print(res) 结果: {"username": "jason", "pwd": 123}
2.loads 读模式
# 将字典d读出来
with open(r'a.txt', 'r', encoding='utf8') as f1:
# 将文件内数据读出赋值
data = f1.read()
# 将json格式 转换 回对应的某个类型形式
res1 = json.loads(data)
- 输出结果
print(res1,type(res1)) 结果: {'username': 'jason', 'pwd': 123}
3.dump 写模式
d = {'username': 'jaso', 'pwd':123}
# 写入字典
with open(r'a.txt', 'w', encoding='utf8') as f:
# 将其他数据类型转换成json格式字符串 存入字典
json.dump(d,f)
json.dump 写模式 将两步合为一步
4.load 读模式
读出字典
with open(r'a.txt', 'r', encoding='utf8') as f:
将文件内数据读出赋值 将json格式 转换 回对应的某个类型形式
res = json.load(f)
print(res,type(res))
- load 读模式 将两步合为一步
十:load与loads区别
json.loads
# 将文件读出来
with open(r'a.txt', 'r', encoding='utf8') as f1:
作用:
1.先将文件内数据读出赋值
data = f1.read()
2. 将json格式 转换 回对应的某个类型形式
json.loads(data)
json.load
作用:
1.将文件内数据读出 将json格式 (反序列化)转换回对应的某个类型
json.load(f)
json在序列化的时候 如果你不符合ASCII
d1 = {'username': 'tony好帅哦 我好喜欢', 'pwd': 123,'hobby':[11,22,33]}
print(json.dumps(d1,ensure_ascii=False))

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

json模块 os模块 文件加密的更多相关文章
- 07 json与os模块(进阶)
json和os模块 阶段一 .数据交换 1.json的基本介绍 JSON全名是JavaScript Object Notation(即:JavaScript对象标记)它是JavaScript的子集. ...
- Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块
Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...
- day13 函数模块之序列化 random 模块 os模块 sys模块 hashlib模块 collections模块
json import json dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 ...
- day 20 collection模块 time 模块 os 模块
一.collection模块 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要 ...
- python常用模块: random模块, time模块, sys模块, os模块, 序列化模块
一. random模块 import random # 任意小数 print(random.random()) # 0到1的任意小数 print(random.uniform(-10, 10)) # ...
- 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
- random模块 os模块
# random# import random# random.random() # 大于0且小于1之间的小数# random.randint() # 大于等于1且小于等于3之间的整数# random ...
- Python学习第十二课——json&pickle&XML模块&OS模块
json模块 import json dic={'name':'hanhan'} i=8 s='hello' l=[11,22] data=json.dumps(dic) #json.dumps() ...
- python模块-OS模块详解
1.按字母分 os相关的函数:143个.按字母排序如下: ['abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'clo ...
随机推荐
- 【LeetCode】1415. 长度为 n 的开心字符串中字典序第 k 小的字符串 The k-th Lexicographical String of All Happy Strings of Le
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetcod ...
- 【LeetCode】191. Number of 1 Bits 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 右移32次 计算末尾的1的个数 转成二进制统计1的个 ...
- 【LeetCode】70. Climbing Stairs 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目大意 题目大意 解题方法 递归 记忆化搜索 动态规划 空间压缩DP 日期 [L ...
- 【LeetCode】930. Binary Subarrays With Sum 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 二分查找 字典 相似题目 参考资料 日期 题目地址: ...
- 【LeetCode】274. H-Index 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/h-index/ ...
- 【LeetCode】312. Burst Balloons 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/burst-ba ...
- 知识增强的预训练语言模型系列之ERNIE:如何为预训练语言模型注入知识
NLP论文解读 |杨健 论文标题: ERNIE:Enhanced Language Representation with Informative Entities 收录会议:ACL 论文链接: ht ...
- Java初学者作业——使用记事本编写Java程序
返回本章节 返回作业目录 需求说明: 使用记事本编写 Java 程序,输出"大家好!我的梦想是做一名 Java 高级工程师!". 为 Java 程序添加单行和多行注释以及文档注释. ...
- 【HTML响应式项目】成人教育官网前端页面(HTML+CSS+JS实现三端适应)
这个页面是在校参赛的小组项目,除首页和所有课程页面以外由组内成员编写,发博客纯属记录. 项目源码已上传至码云仓库:https://gitee.com/ynavc/sss 项目演示地址:http://y ...
- dart系列之:dart代码最佳实践
目录 简介 命名规则 import中的顺序 格式化 总结 简介 每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的.如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的便利 ...