首页 > 编程语言 >25.python模块(加密,os,re,json)

25.python模块(加密,os,re,json)

时间:2024-08-13 19:26:44浏览次数:18  
标签:25 python re dx import print path os

一.加密讲解

加密算法:

md5\rsa\AES\des\base

(一)base64加解密

import  base64
a=base64.b64encode(b"123456")
print(a) #加密#b'MTIzNDU2'
b=base64.b64decode(b'MTIzNDU2')
print(b) #b'123456'

http://encode.chahuo.com/ 在线加解密

hashlib: md5\sha3_51\sha3_512()\sha3_256()

(2) md5 是一中算法,可以将一个字符传串,文件,通过md5生成字符串,唯一字符串

MD5 在python3中归纳到hashlib 模块中

import  hashlib
m=hashlib.md5() #创建一个md5对象
m.update(b"123456")
print(m.hexdigest()) #e10adc3949ba59abbe56e057f20f883e 十六进制的字符串

(3)sha3_256()加密

import  hashlib
m=hashlib.sha3_256() #创建一个md5对象
m.update(b"123456")
print(m.hexdigest()) #d7190eb194ff9494625514b6d178c87f99c5973e28c398969d2233f2960a573e

(4)sha3_512 加密

import  hashlib
m=hashlib.sha3_512() #创建一个md5对象
m.update(b"123456")
print(m.hexdigest()) #64d09d9930c8ecf79e513167a588cb75439b762ce8f9b22ea59765f32aa74ca19d2f1e97dc922a3d4954594a05062917fb24d1f8e72f2ed02a58ed7534f94d27

(5)ha3_384() 加密

import  hashlib
m=hashlib.sha3_384() #创建一个md5对象
m.update(b"123456")
print(m.hexdigest()) #1fb0da774034ba308fbe02f3e90dc004191df7aec3758

作用:

1.加密在工作中可以对数据进行比对;(大量数据的比对)

加密: 10万条数 ,加密 =====>传输给对方,

解密:解密不一致,数据发生变化,

作业:

1\通过md5 将随机生成的验证码进行加密输出

os模块

一.os使用语句

import  os
print(os.getcwd()) #获取当前执行命令所在的目录

import  os
b_path=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled8\bao"
py_path=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled8\bao\mk.py"
bcz_path=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled8\bao\abcde.py"
new_path=r"E:\az\ss1"
new1_path=r"E:\az\ss2\vv.txt"
# print(os.getcwd()) #获取当前执行语句的目录
# print(os.path.isfile(b_path)) #判断是否一个文件 #False
# print(os.path.isfile(py_path)) #True
# print(os.path.isdir(b_path)) #True判断是否一个目录
# print(os.path.isdir(py_path))#False
# print(os.path.exists(b_path)) #True  判断文件是否存在
# print(os.path.exists(bcz_path)) #False 判断文件是否
# print(os.listdir(b_path)) #显示目录下所有文件或目录
# print(os.path.split(b_path)) # 分割文件名和目录('C:\\Users\\Administrator.USER-20231114RR\\PycharmProjects\\untitled8', 'bao')
# print(os.path.join(b_path,"dd.py")) #拼接路径
# print(os.mkdir(new_path)) # 新建目录
# print(os.rename(new_path,new1_path))#修改目录名
print(os.remove(new1_path)) #删除文件

拓展:

print(os.path.dirname(__file__))#获取包当前包的路径
print(os.path.dirname(os.path.abspath(__file__))) ##获取包当前包的路径
print(os.getcwd()) #获取包当前包的路径
print(os.path.dirname(os.path.dirname(__file__))) #获取当前项目路径
print(os.path.abspath(__file__)) #获取绝对路径

re模块

一.re 模块的介绍

1.什么是正则表达式"

定义:正则表达式是一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符来过滤的逻辑。(也是一种文本模式;)
2、正则表达式可以帮助我们检查字符是否与某种模式匹配
3、re表达式作用?
快速高效查找和分析字符比对自读,也叫模式匹配,比如:查找,比对,匹配,替换,插入,添加,删除等能力。

4.格式:

import re

====================================================
二、认识正则表达式中的特殊元素?

\d:数字0-9
\D:非数字
\s:空白字符
\n:换行符
\w 匹配字母数字
\W 匹配非字母数字
^:表示的匹配字符以什么开头
$:表示的匹配字符以什么结尾
:匹配前面的字符0次或n次 eg:ab (* 能匹配a 匹配ab 匹配abb )
+:匹配+前面的字符1次或n次
?:匹配?前面的字符0次或1次
{m}:匹配前一个字符m次
{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是

====================================================

常用的四种方法
1、findall
从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个空列表[]
2、match
从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败得到一个none值
注意:如果规则带了’+’,则匹配1次或者多次,无’+'只匹配一次
3、search
从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错
4、compile(不考虑,也不讲)
编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]

====================================================

三\案例:

1、findall
从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个空列表[]

import  re
s="abcdeemtppppaa"
dx=re.findall("a",s)
print(dx)

2、match
从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败得到一个none值
注意:如果规则带了’+’,则匹配1次或者多次,无’+'只匹配一次

import  re
s="ab2cdeem2tpp1ppaa"
dx=re.match("a",s)
print(dx)  

3、search
从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错

import  re
s="b2cdeem2tpp1ppaa"
dx=re.search("a",s)
print(dx)

====================================================

四\特殊符号的使用

(1)\d:数字0-9

import  re
s="b2cdeem2tpp1ppaa"
dx=re.findall("\d",s)
print(dx)

(2)\D:非数字

import  re
s="b2cdeem2tpp1ppaa"
dx=re.findall("\D",s)
print(dx) #['b', 'c', 'd', 'e', 'e', 'm', 't', 'p', 'p', 'p', 'p', 'a', 'a']

(3)\s:空白字符

import  re
s="b2c deem 2tpp1ppaa"
dx=re.findall("\s",s)
print(dx)

(4)\n:换行符

import  re
s="b2c de\nem 2tpp1pp\naa"
dx=re.findall("\n",s)
print(dx)

\w 匹配字母数字

\W 匹配非字母数字

^:表示的匹配字符以什么开头

import  re
s="ab!##%2c de\nem 2tpp1pp\naa"
dx=re.findall("^a",s)
print(dx)

$:表示的匹配字符以什么结尾

:匹配前面的字符0次或n次 eg:ab ( 能匹配a 匹配ab 匹配abb )

import  re
s="ab!##%2c de\nem 2tpp1aaapp\naa"
dx=re.findall("a*",s)
print(dx)

+:匹配+前面的字符1次或n次

import  re
s="ab!##%2c de\nemaaaaaaa 2tpp1aaapp\naa"
dx=re.findall("a+",s)
print(dx)

?:匹配?前面的字符0次或1次

import  re
s="ab!##%2c de\nemaaaaaaa 2tpp1aaapp\naa"
dx=re.findall("a?",s)
print(dx)

{m}:匹配前一个字符m次]

import  re
s="ab!##%2c de\nemaa 2tpp1aaapp\naa"
dx=re.findall("a{3}",s)
print(dx)

{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是

import  re
s="ab!##%2c de\nemaa 2tpp1aaapp\naaaaa"
dx=re.findall("a{1,5}",s)
print(dx)

=======================================================

re 标识符号: 不区分大小写

import  re
s="ab!##%2c de\nemaa 2tpp1aAApp\naaaaa"
dx=re.findall("a{1,5}",s,flags=re.I)
print(dx)

=======================================================

sub 替换:

import  re
s="ab!##%2c de\nemaa 2tpp1aAApp\naaaaa"
dx=re.sub("\d","8",s,flags=re.I)
print(dx)

JSON模块

一.json模块的介绍

1.定义:json是一个轻量级的文本数据交互格式

2.json和字典相似

3.json模块的作用:

(1)序列化

将python对象转换成json格式数据

dump () dumps()

(2)反序列化

将json格式转换成python对象

load () ,loads()

二、实操

1、通过dumps 将pyton中的字典对象转换成json格式

import  json
d={"name":"zs","age":18}
print(d) #{'name': 'zs', 'age': 18}
print(type(d)) #<class 'dict'>
js=json.dumps(d)
print(js) #{"name": "zs", "age": 18}


2、通过dump 将pyton中的对象转成json格式保存到文档中

import  json
d={"name":"zs","age":18,"isonly":True}
url=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled8\bao\xx1.json"
js=json.dump(d,open(url,"w"))

3、loads 将json格式转换成字典格式

import  json
j='{"name":"zs","age":18}'
print(type(j))#<class 'str'>
print(j) #{"name":"zs","age":18}
d1=json.loads(j)
print(type(d1)) #<class 'dict'>

4、

import  json
lj=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled8\bao\xx1.json"
d1=json.load(open(lj,"r"))
print(d1)
print(type(d1)) #<class 'dict'>

标签:25,python,re,dx,import,print,path,os
From: https://www.cnblogs.com/fujintao/p/18357568

相关文章

  • npm报错:request to https://registry.npm.taobao.org failed处理办法
    今天在安装flowise的时候提示npm报错:requestto https://registry.npm.taobao.org failed,reasoncertificatehasexpired看提示是淘宝镜像过期了。找了一下资料,好像是npm淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。旧域名也将于2022......
  • 【JVM】jvm 线程栈的一些设置 Thread Size
    1.概述下面是jvm线程栈的一些设置,简单的了解一下。2.XssXss和ThreadStackSize是等价的参数,用于设置Java线程栈的大小,单位为Kb。在命令行中,-Xss100K和-XX:ThreadStackSize=100是表示相同意义的参数。Xss参数的实现:Xss参数是通过设置ThreadStackSize数据......
  • 【项目实战】基于Python的网络小说榜单信息爬取与数据可视化系统
    注意:该项目只展示部分功能,如需了解,文末咨询即可。本文目录1.开发环境2系统设计2.1设计背景2.2设计内容3系统页面展示3.1用户页面3.2管理员页面3.3功能展示视频4更多推荐5部分功能代码5.1爬虫代码5.2小说代码1.开发环境开发语言:Python技术框架:Fla......
  • dreambooth代码阅读
    网上dreambooth大部分只是对论文讲解,但代码讲解不是找不到就是收费,没办法,自己硬读,记录一下。水平不高,学机器学习不久,可能有错,欢迎指正,仅做参考。Dreambooth流程简单来说是1,通过在现有的Diffusion模型增加一个你要的token,变成一个新的模型,比如你给特定一只sys狗的照片训练,你新......
  • python-print()函数
     一、print()函数概述该函数的语法如下:print(*objects,sep='',end='\n',file=sys.stdout)参数的具体含义如下:objects--表示输出的对象。输出多个对象时,需要用,(逗号)分隔。sep--用来间隔多个对象。end--用来设定以什么结尾。默认值是换行符\n,我们可以换成其......
  • python实现迷宫最佳路径规划
    在Python中实现迷宫路径的最佳路径规划,我们通常可以使用图搜索算法,如广度优先搜索(BFS)或更高效的A搜索算法。A算法因其结合了最佳优先搜索(如Dijkstra算法)和启发式信息(如曼哈顿距离或欧几里得距离)来评估节点的潜力,所以在寻找最短路径时非常有效。下面将展示如何使用A*算法在Pyth......
  • Python 栅格数据处理教程(一)
    本文将介绍通过ArcGISPro的Python模块(arcpy)对栅格数据定义投影及裁剪的方法。1数据来源及介绍降水量数据:国家青藏高原科学数据中心的中国1km分辨率逐月降水量数据集。行政区数据:天地图行政区划数据中的吉林省边界面数据,该数据为GeoJSON格式,可通过QGIS等软件将其转换......
  • 参加阿里云实时数仓Hologres动手操作,赠送博客园T恤
    这是8月份园子和阿里云的第2期推广合作,招募100人参加阿里云实时数仓Hologres动手操作,有效完成动手操作的前100人赠送1件原价79元的博客园T恤,如果不需要T恤,也可以选原价不高于79元的其他周边。活动官网:https://developer.aliyun.com/topic/yunduanwendao/hologres_internal参......
  • inscode的会员计划的python环境问题【版本3.9.16】无法升级python
    购买了inscode的会员计划后,部署python项目遇到python环境无法升级的问题inscode的会员计划的环境是3.9.16,但是项目用的例子需要3.10以上的版本,最终本人也无法完全解决,虽然手动安装了python3.10,一切都可以实现,但是最后环境自动恢复到3.9版本,导致自己手动配置的全废了,本帖子......
  • postgresql清理空闲连接
    问题今天突然无法连接postgresql,出现的异常如下:FATAL:sorry,toomanyclientsalready解决查看当前活跃和空闲连接selectpid,datname,application_name,client_addr,statefrompg_stat_activitywherestatein('idle','active');根据条件清理空闲连接s......