一: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模块 文件加密的更多相关文章

  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. c++参数入栈顺序和参数计算顺序

    关于 本文涉及到代码,演示环境为:win10 + VS2017 ,ubuntu+clang clang版本: 参数入栈顺序 顺序 几种常见的函数参数入栈顺序,还有两种就不介绍了(__clrcall._ ...

  2. 【LeetCode】252. Meeting Rooms 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 排序 日期 题目地址:https://leetcode ...

  3. 【LeetCode】223. Rectangle Area 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/rectangl ...

  4. 突破技术限制,实现Web端静默打印

    作为Web开发的同僚们,估计都有一个共同的烦恼,Web端为什么不能够像 CS端那样直接打印预览?直接移除掉打印预览界面不就可以了? 真实情况是Web端受限于浏览器的权限,无法直接访问打印机等本机资源. ...

  5. 难搞的偏向锁终于被 Java 移除了

    背景 在 JDK1.5 之前,面对 Java 并发问题, synchronized 是一招鲜的解决方案: 普通同步方法,锁上当前实例对象 静态同步方法,锁上当前类 Class 对象 同步块,锁上括号里 ...

  6. 玩转 ByteBuffer

    为什么要讲 Buffer 首先为什么一个小小的 Buffer 我们需要单独拎出来聊?或者说,Buffer 具体是在哪些地方被用到的呢? 例如,我们从磁盘上读取一个文件,并不是直接就从磁盘加载到内存中, ...

  7. 「算法笔记」Min_25 筛

    戳 这里(加了密码).虽然写的可能还算清楚,但还是不公开了吧 QwQ. 真的想看的 私信可能会考虑给密码 qwq.就放个板子: //LOJ 6053 简单的函数 f(p^c)=p xor c #inc ...

  8. 论文翻译:2020_Joint NN-Supported Multichannel Reduction of Acoustic Echo, Reverberation and Noise

    论文地址:https://ieeexploreieee.fenshishang.com/abstract/document/9142362 神经网络支持的回声.混响和噪声联合多通道降噪 摘要 我们考虑 ...

  9. <学习opencv>opencv函数

    /*=========================================================================*/ // openCV中的函数 /*====== ...

  10. 【jvm】09-full gc分析思路

    [jvm]09-full gc分析思路 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞. ...