Python心经(4)
这节记录一些内置模块的使用
目录
hashlib模块,,加密用
json模块
os模块
一个实用的案例:
os模块的找文件的操作
随机生成random模块
时间相关模块
time,datetime
hashlib模块,,加密用
以md5加密示例:
import hashlib
#对数据加密data="你好啊世界"
obj=hashlib.md5() #生成加密对象
obj.update(data.encode('utf-8')) #加密
res=obj.hexdigest() #返回结果
print(f'加密后为:{res}')
小案例:
用户输入用户名,密码,,加密之后保存在文件里
类似于注册功能
#内置模块,hashlib #md5加密import hashlib #对数据加密def ens(data):obj = hashlib.md5() # 生成加密对象obj.update(data.encode('utf-8')) # 加密res = obj.hexdigest() # 返回结果return res#print(f'加密后为:{res}')def run():user=input("请输入用户名:")password=input("请输入密码:")newpassword=ens(password)#做个格式化line="{}->{}\n".format(user,newpassword)#写到文件fd=open("tt.txt",mode="a",encoding='utf-8')fd.write(line)fd.close()if __name__=='__main__':run()
那对于登录怎么办呢?
用户输入用户名,密码,,都是明文,
函数对密码进行加密,完了读取保存的文件,进行加密之后的密文对比就行
就是对run函数稍微修改一下就行:
import hashlib
#对数据加密def ens(data):obj = hashlib.md5() # 生成加密对象obj.update(data.encode('utf-8')) # 加密res = obj.hexdigest() # 返回结果return res#print(f'加密后为:{res}')def run():user=input("请输入用户名:")password=input("请输入密码:")newpassword=ens(password)fd=open("tt.txt",mode="r",encoding="utf-8")some=fd.read()fd.close()#先split 以\n分片,在strip去除空格 \ndata_list=some.strip().split('\n')for item in data_list:name,word=item.split('->') #[用户名,密码]if name==user and word==newpassword:print("登录成功")breakelse:print("失败")breakif __name__=='__main__':run()
md5加密加盐,更保险哦~
json模块
1、dumps:把字典转成json字符串
2、loads:把json字符串转成字典
import jsontest_dict = {'a':1, 'b':2}#把字典转成json字符串
json_text = json.dumps(test_dict)
print(type(json_text))
print(json_text)#把json字符串转成字典
json_dict = json.loads(json_text)
print(type(json_dict))
print(json_dict)
python里的json模块只能序列化下面这些格式,,别的对象想要json,就需要做转换
os模块
获取绝对路径 ,abspath,,没有会自动创建
路径拼接:join
判断文件/文件夹存在否:exists
创建文件夹:makedirs
#获取文件项目的绝对路径
v=os.path.abspath("tst.py")
print(v)#路径的拼接
#只是做路径拼接,,不管你文件在不在
file_txt=os.path.join("file","ff.txt")
print(file_txt)#文件或文件夹是否存在
file_txt=os.path.join("file","ff.txt")file1_txt=os.path.join("Test","tt.txt")v1=os.path.exists(file_txt)
v2=os.path.exists(file1_txt)print(v1)
print(v2)#创建文件夹os.makedirs(file_txt)
一个实用的案例:
创建以用户名命名的文件,里面写入用户密码
import osdef run():user=input("输入用户名:")pws=input("输入密码:")#创建db目录folder_path=os.path.abspath("db")if not os.path.exists(folder_path):os.makedirs(folder_path)#在db目录下写内容file_path=os.path.join(folder_path,"{}.txt".format(user))fd=open(file_path,mode='w',encoding='utf-8')fd.write(pws)fd.close()if __name__=='__main__':run()
os模块的找文件的操作
查看路径下所有文件:os.listdir(),返回一个列表对象,只能找一级,里面如果有文件夹,也能找到文件夹,但是找的的这个文件夹里面的下级文件就找不到了
ij=os.listdir(os.path.abspath('E:\python_code\Test'))print(ij)
os.walk 能全找出来,,意思就是会进到下级文件夹找文件,所以后面能用for循环遍历找
ipj=os.walk(os.path.abspath('E:\python_code\Test'))for ins,b,ons in ipj:for name in ons:file_tmp=os.path.join(ins,name)print(file_tmp)
随机生成random模块
random.randint随机生成数字
vs=random.randint(1000,9999)
print(vs) #1000-9999
随机获取任意一个东西,什么都能获取,,数字,字符串,函数啥的都可以
random.choice
dis=[45,12,3,37,59]
pl=random.choice(dis)
print(pl)
random.shuffle 打乱数据用的,,
dis=[1,2,3,4,5]random.shuffle(dis)
print(dis)
random.sample
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。 如果k大于sequence元素个数的话会报错。
可以用于字典,可以充当随机取一个的作用
disp={'sa':"sap",45:"as82",'pls':45111}
pl=random.sample(disp.keys(),1)
print(pl)
时间相关模块
time,datetime
time一般用在时间戳这块
v1=time.time()#获取时间戳
print(v1)
time.sleep() 睡眠
datetime获取当前时间
#获取本地当前时间
vs=datetime.datetime.now()
print(vs)
datetime方便时间的加减
datetime返回的是一个对象
vs2=vs+datetime.timedelta(days=7,hours..)
print(vs2)
Python心经(4)相关推荐
- Python心经(6)
目录 callable super type()获取对应类型 isinstance判断对象是否是某个类或者子类的实例 issubclass,判断对象是不是类的子孙类 python3的异常处理 反射: ...
- Python心经(2)
有关数字类型,字符串,函数 目录 有关数字类型,字符串,函数 数字 字符串 索引操作 切片操作 单个字符编码 运算符 还有一些常用的内置函数 Python输入函数 输出函数print()语法 pyth ...
- Python心经(5)
目录 python对于类和实例,,都能随时动态绑定 属性或者函数 可以通过__slots__去限定实例所能绑定属性的范围 python里面类很多定制函数__xx__ 下面给个python里面枚举类型 ...
- Python心经(1)
因为工作要用python写一些脚本,所以自己就开始学习了一下. 这个系列不知道能更多少,看我学的深浅吧.总之先过一下语法,记录一下学习的时候敲的demo 代码测试的话我用vscode+python解释 ...
- Python心经(3)
这一节总结点demo和常用知识点 目录 有关字符串格式化打印的 lambda匿名函数,,将匿名函数作为参数传入 文件读写 生成器 python的装饰器 简单的网站代码: 有关三元运算 推导式: 新浪面 ...
- 语音控制 python_用Python编程实现语音控制电脑
电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声"我累了",电脑就会放着优雅的轻音乐来让你放松. 或许你希望你在百忙之中,能让电脑郎读最新的NBA比分赛况-.一 ...
- python性能测试方法_Python实现测试磁盘性能的方法
本文实例讲述了Python实现测试磁盘性能的方法.分享给大家供大家参考.具体如下: 该代码做了如下工作: create 300000 files (512B to 1536B) with data f ...
- python中的集合类型_Python中的集合类型知识讲解
>>> s.add('z') >>> s set(['c', 'e', 'h', 'o', 'p', 's', 'z']) >>> s.updat ...
- python列表常用操作_Python列表(list)常用操作方法小结
常见列表对象操作方法: list.append(x) 把一个元素添加到链表的结尾,相当于 a[len(a):] = [x] . list.extend(L) 将一个给定列表中的所有元素都添加到另一个列 ...
最新文章
- Sphinx武林秘籍(上)
- Cisco 无线AP刷机为胖AP
- Oracle 11G在用EXP 导出时,空表不能导出解决
- 聊聊高并发(六)实现几种自旋锁
- java异常 说服力_异常常见面试题目
- 敏感词过滤的php代码,PHP敏感词过滤
- Upload-Labs(17-20)
- 基于RTP/RTCP的无线视频传输自适应带宽控制
- 红米NOTE8PRO拍照技巧
- 人工智能面试总结:160个机器学习面试题,赶紧先考考自己!
- 嵌入式系统概述1-嵌入式系统定义、特点和发展历程
- Hadoop3 - HDFS 文件存储策略
- fffffffffffffffffffffffffffffff
- 机器学习面试必考面试题汇总—附解析
- java map遍历的5种方法
- 【博客628】k8s pod访问集群外域名原理以及主机开启了systemd-resolved的不同情况
- 全网优秀的攻防渗透工具总结
- java获取其他窗体上的控件,怎么获取从引用自定义panel控件的frame里获取它的控件的值...
- leetcode: 517. 超级洗衣机
- JavaScript学习记录七
热门文章
- 管理系统中计算机应用实践报告,管理系统中的计算机应用实践报告.docx
- METTLER TOLEDO梅特勒变送器维修电路板M300
- 4.4 使用曲线命令修复图像色偏问题 [原创Ps教程]
- Web初学-2022.11.6-12.02
- 网易号怎么开通收益?网易号怎么去运营?
- 智能家居这块“蛋糕”“一起吃”才香
- Linux运维学习第一周总结
- Oracle9i突破内存限制,oracle9i 的内存分配
- 去掉字符串中所有的逗号
- 轻舟已过万重山:专访网易云陈谔