python 常用模块

 

强调

文件名不要和模块名重复

os模块

功能:
1.创建文件夹
2.删除文件夹
3.查看
4.判断
5.路径拼接
6.文件大小

创建文件夹

# 在同级目录下创建 单级目录
os.mkdir(r'文件夹1') 
# 可以创建多节文件夹
os.makedirs(r'文件夹2\文件夹3') 
# 也可以创建单级文件夹
os.makedirs(r'文件夹03') 

删除文件夹

os.rmdir(r'文件夹1')  
# 报错,默认只能删除一级空目录
os.rmdir(r'文件夹02\文件夹03')
# 删除多节目录,目录必须为空
os.removedirs(r'文件夹02\文件夹03\文件夹04')

查看

# 查看当前路径下所有文件夹
print(os.listdir()) 
# 查看指定路径下所有文件夹
print(os.listdir('D:\\'))  
# 查看当前所在的路径
print(os.getcwd()) 
# 切换当前操作路径
os.chdir(r'路径') 

判断

#结果输出为布尔值
# 判断是否为文件
print(os.path.isdir(r'文件名.txt'))
# 判断是否为文件夹
print(os.path.isfile(r'文件夹名'))
# 判断当前路径是否存在
print(os.path.exists(r'路径') )

路径拼接

# 该方法可以针对不同的操作系统会自动切换分割符
res = os.path.join('D:\\',' ')
'''
各操作系统的路径分隔符不一样
    windows: \
    mac: /
''' 

文件大小

# a 内容为 'hello日'
# 输出8  判断文件大小 输出为字节数
print(os.path.getsize(r.'a.txt' ))  

random模块

功能:
1.随机数
2.随机选择
3.随机抽样
4.随机打乱
5.小练习

随机数

# 随机输出1到6数字
print(random.randint(1,6))  

随机选择

# 随机抽取一个
print(random.choice(['1','2','TT']))
print(random.choices(['1','2','TT']))

随机抽样

#样本有指定个数
#输出一个元素个数为3的随机数列
print(random.sample([111,22,4,5,6,78,13,4],3))

随机打乱

# 随机打乱元素
l=[1,23,4,53,543,62,53]
random.shuffle(l)  # 随机打乱序列,洗牌
print(l)  # 输出为打乱的元素

小练习

'''
产生一个五位数随机验证码
    每一位都可以是数字\小写字母\大写字母
'''

import random
l = ''
for i in range(5):
  # 0到9随机数 rand1
=str(random.randint(0,9))
  # A到Z随机字母 rand2
=chr(random.randint(65,90))
  # a到z随机字母 rand3
=chr(random.randint(97,122)) rand4= random.choice([rd3,rd2,rd1]) l += rand4 print(l)

hashlib模块

加密模块
    将明文数据通过一定逻辑变成密文数据,由数字和字符随机组成

加密算法
    将明文数据按照一定的逻辑(每个算法内部逻辑都不一样)
        加密之后的密文不能反解密出文明

功能:
1.加密
2.加盐处理
3.动态加盐处理

加密

# 选择加密算法
md5 = hashlib.md5()
# 将代加密的数据传入算法
# 数据必须是bytes类型(二进制)
md5.update(b'hello 123')  
# 获取加密后的密文
res=md5.hexdigest() 

加盐处理

  在对数据加密之前再添加干扰数据
# 选择加密算法
md5 = hashlib.md5()
md5.update('自己定制的盐'.encode('utf8'))
# 数据必须是bytes类型
md5.update(b'hello')  
# 获取加密后的密文
res = md5.hexdigest()
# 输出加密后的密文
print(res)  

动态加盐

# 选择加密算法
md5 = hashlib.md5()
# 将待加密的数据传入算法中
actx=input('动态数据:')
md5.updat(actx.encode('utf8'))
md5.update(b'hello') 
res = md5.hexdigest()
print(res)  

加密补充

'''
数据必须是bytes类型
加密算法一般采用md5即可
生成密文越长表示该算法越复杂
常见算法:md5 base64 hmac sha系列
'''

logging模块

功能    
  该模块主要运用于监控监管等 日志级别
logging.debug()  # 调试
logging.info()  # 通知
logging.warning()  # 警告
logging.error()  # 出错
logging.critical()  # 严重事故 等级最高
级别大小(从左到右,由大到小):
    debug < info < warming < error < critical

实例1

eg:
import logging # 开始初始化()内可以不写 logger = logging.getLogger() # 创建一个handler,用于写入日志文件 fh = logging.FileHandler('test.log',encoding='utf-8') # 创建一个handler,用于输出日志文件 ch = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setLevel(logging.DEBUG) fh.setFormatter(formatter) ch.setFormatter(formatter) logger.addHandler(fh) #logger对象可以添加多个fh和ch对象 logger.addHandler(ch) logger.debug('logger debug message') logger.info('logger info message') logger.warning('logger warning message') logger.error('logger error message') logger.critical('logger critical message')

 

实例2

import logging

# 创建 file_handler
= logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',) logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', handlers=[file_handler,], level=logging.ERROR ) logging.error('你好')

 

 

json模块

  能将其他数据类型转换成字符串
也可将字符串转换成其他数据类型

功能:
  1.序列化
  2.反序列化
  3.文件反序列化和序列化

序列化和反序列化

import json
d = {'username':'jj','pwd':123}
语法:
json.dumps(变量) #
序列化
json.loads(变量)  #反序列化
序列化:
能将其他数据类型转换成json格式的字符串
eg:
d = {'username': 'jj', 'pwd': 123}
res = json.dumps(d)
print(res,type(res))
newd ={"username": "jj", "pwd": 123}
print(newd,type(newd))
'''
只有json合适字符串是双引号 双引号就是判断json格式字符串的重要依据
'''序列化:
将json格式的字符串转换成对应数据类型,必须把整数字符转化为整形
res1 =json.loads(res)
print(res1,type(res1))

 

文件序列化和反序列化

语法:
json.dump(序列化变量,存储目标)  #文件序列化
json.load(变量)
with open(r'a.txt','a',encoding='utf8') as f:
    json.dump(d,f)
with open(r'a.txt','r',encoding='utf8') as f:
    res = json.load(f)
    print(res,type(res))

 

json格式字符串

  可以转化为json格式的字符串

python Json
dict object
list,tuple array
str string
int,float number
True true
False false
None null

返回目录

posted @ 2021-08-20 16:51  微纯册  阅读(41)  评论(0编辑  收藏  举报