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】1418. 点菜展示表 Display Table of Food Orders in a Restaurant
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典统计边的次数 日期 题目地址:https://le ...
- 【九度OJ】题目1190:大整数排序 解题报告
[九度OJ]题目1190:大整数排序 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1190 题目描述: 对N个长度最长可达 ...
- 【LeetCode】400. Nth Digit 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 第四十七个知识点:什么是Fiat-Shamir变换?
第四十七个知识点:什么是Fiat-Shamir变换? 只要Alice和Bob同时在线,Sigma协议能快速的完成Alice向Bob证明的任务.Alice向Bob发送承诺,Bob返回一个挑战,最后Ali ...
- Representation Learning with Contrastive Predictive Coding
目录 概 主要内容 从具有序的数据讲起 Contrastive Predictive Coding (CPC) 图片构建序 Den Oord A V, Li Y, Vinyals O, et al. ...
- [源码解析] PyTorch 分布式之弹性训练(7)---节点变化
[源码解析] PyTorch 分布式之弹性训练(7)---节点变化 目录 [源码解析] PyTorch 分布式之弹性训练(7)---节点变化 0x00 摘要 0x01 变化方式 1.1 Scale-d ...
- C++string字符串截取其中元素 截取定位字符串
#include <iostream> #include <string> using namespace std; /** * 截取str后的元素 * @param stre ...
- Linux开关机与登录注销
开机和重启 shutdown -h now:立即关机计算机 shutdown -h 1:1分钟后关机 halt:立即关机 reboot:立即重启 sync:把内存的数据同步到磁盘 注: shutdow ...
- 云南农职《JavaScript交互式网页设计》 综合机试试卷③——实现二级分类菜单
一.语言和环境 实现语言:HTML,CSS,JavaScript,JQuery. 开发环境:HBuilder. 二.题目(100分): 使用Jquery和JavaScript实现二级分类菜单管理 点击 ...
- SpringCloud创建Config Client配置读取
1.说明 本文详细介绍配置中心客户端使用方法, 即Config Client到Config Server读取配置, 这里以创建Config Client服务为例, 基于已经创建好的Config Ser ...