模块(二)os hashlib
模块(二)os hashlib
1.序列化模块
1.1 json 将满足条件的数据结构转化成特殊的字符串,并且可以反序列化转回去
# 两对方法
# 1 dumps() loads() ## 多用于网络传输
d = {"aa":1,"bb":2}
import json
s = json.dumps(d) ## 转储 为str
# 想转回去 用 loads()
d1 = json.loads(s) ## 反序列化
## 第二对方法 dump() load() 只能用作文件转储 而且只能写一行
d = {'aa':'噜啦啦',"bb":22}
with open('j1.json',encoding='utf-8',mode='w') as f1:
json.dump(d,f1,ensure_ascii=False) ## 参数显示中文
with open('j1.json',encoding='utf-8') as f2:
d2 = json.load(f2)
print(d2)
## json 转多条数据到文件中时
import json
dic1 = {'name':'oldboy1'}
dic2 = {'name':'oldboy2'}
dic3 = {'name':'oldboy3'}
l = [dic1,dic2,dic3]
with open('j2.json',encoding='utf-8',mode='a') as f1:
f1.write(json.dumps(l))
with open('j2.json',encoding='utf-8') as f2:
s2 = f2.read()
l2 = json.loads(s2)
1.2 pickle
只限于python内使用
dic1 = {'name':'oldboy1'}
dic2 = {'name':'oldboy2'}
dic3 = {'name':'oldboy3'}
f = open('pick多数据',mode='wb')
pickle.dump(dic1,f)
pickle.dump(dic2,f)
pickle.dump(dic3,f)
f.close()
f = open('pick多数据',mode='rb')
while True:
try:
print(pickle.load(f))
except EOFError:
break
f.close()
## 操作和json大致相同,只是默认转为bytes,所以文件操作的时候要用 二进制b 格式
2 os 操作系统交互
# 和路径相关
## 绝对路径
# t = os.path.abspath('t1.py')
# print(t)
# 切割 成一个两项元组, 前面的所有路径+最后一个路径
# t = os.path.split(__file__)
# print(t)
# ## 父级路径 split切割后的元组 索引 0
# t = os.path.dirname(os.path.abspath('t1.py'))
# print(t)
## __file__绝对路径
# print(__file__)
## 获取文件名 split切割后的元组 索引 1
# t = os.path.basename(__file__)
# print(t)
# 判断路径是否存在
# t= os.path.exists('t1.py')
# print(t)
## 判断是否是绝对路径
# print(os.path.isabs(r'D:\_albert\fighting'))
# print(os.path.isabs(r'\fighting\day_09'))
## 判断是否是文件 或者是路径
print (os.path.isfile('t1.py'))
print(os.path.isdir('t1.py'))
## 拼接 路径
print(os.path.join('a','b'))
## 时间和大小
## os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间 **
## os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 **
## os.path.getsize(path) 返回path的大小 ***
## 文件操作
## 获取当前路径下 所有子路径和文件
# os.listdir(path)
## 获取父路径
# print(os.getcwd())
## 和文件夹相关
# 创建多级路径
# os.makedirs('d1/d2')
# 删除多级路径 有文件的路径不删
# os.removedirs('d1/d2')
# 创建单级目录
# os.mkdir('d3')
# 删除单独路径
# os.rmdir('d3')
# 重命名
# os.rename('d3','d4')
# 删除文件
# os.remove('d4/t.txt')
3 sys 与解释器交互
sys.path() 返回一个列表 模块的搜索路径 可以把要导入的模块路径 加到这个列表中
4 hashlib 加密算法
## 正常加密
import hashlib
md = hashlib.md5() # 实例化对象 这里的md5 可以换别的方法
md.update(bytes) ## 加密
ret = md.hexdigest() ## 十六进制返回值
print(ret)
# 文件可以分批update
# 文件的一致性校验
md = hashlib.md5() ## md5(bytes) 加盐相当于再加密一些
with open(file,mode = 'rb') as f1:
while True:
content = f.read(1024)
if content:
md.update(content)
else:
break
模块(二)os hashlib的更多相关文章
- python--内置模块(二) os sys pickle json
1.os模块 常用方法: os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目 ...
- 常用模块二(hashlib、configparser、logging)
阅读目录 常用模块二 hashlib模块 configparse模块 logging模块 常用模块二 返回顶部 hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SH ...
- python全栈开发day22-常用模块二(hashlib、configparse、logging)
一.昨日内容回顾 1.钻石继承 #新式类,本身或父类显示继承object #找名字的时候是广度优先顺序 #有mro方法,super方法, # super并不是单纯的找父类,和mro顺序是完全对应的 # ...
- python 模块二(os,json,pickle)
#################################总结##################### os常用 os.makedirs('baby/安哥拉/特斯拉/黄晓明') os.mkd ...
- python之常用模块二(hashlib logging configparser)
摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...
- 常用模块random/os/sys/time/datatime/hashlib/pymysql等
一.标准模块 1.python自带的,import random,json,os,sys,datetime,hashlib等 ①.正常按照命令:打开cmd,执行:pip install rangdom ...
- [xml模块、hashlib模块、subprocess模块、os与sys模块、configparser模块]
[xml模块.hashlib模块.subprocess模块.os与sys模块.configparser模块] xml模块 XML:全称 可扩展标记语言,为了能够在不同的平台间继续数据的交换,使交换的数 ...
- 【转】python模块分析之hashlib加密(二)
[转]python模块分析之hashlib加密(二) hashlib模块是用来对字符串进行hash加密的模块,明文与密文是一一对应不变的关系:用于注册.登录时用户名.密码等加密使用.一.函数分析:1. ...
- Python 自学基础(四)——time模块,random模块,sys模块,os模块,loggin模块,json模块,hashlib模块,configparser模块,pickle模块,正则
时间模块 import time print(time.time()) # 当前时间戳 # time.sleep(1) # 时间延迟1秒 print(time.clock()) # CPU执行时间 p ...
随机推荐
- Python 绘图利器 —— ggplot
安装: 命令行:pip install ggplot 1. 杂项 NameError: name 'ggsave' is not defined. Python ggplot- ggsave func ...
- bigdata_mac下安装spark_scala
Java 下载安装Mac对应版本的JDK. Apache-spark $ brew update $ brew info apache-spark $ brew install apache-spar ...
- iOS_21团购_顶部菜单和弹出菜单联动
最后效果图: 各控件关系图1: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize ...
- 读BeautifulSoup官方文档之html树的搜索(1)
之前介绍了有关的四个对象以及他们的属性, 但是一般情况下要在杂乱的html中提取我们所需的tag(tag中包含的信息)是比较复杂的, 现在我们可以来看看到底有些什么搜索的方法. 最主要的两个方法当然是 ...
- C# TCP 通讯
//接收 using System; using System.Collections.Generic;using System.ComponentModel;using System.Data;us ...
- openFrameworks 是一个旨在助力你进行开创性工作的开源 C++ 工具箱(是很多其它类库的组合)
openFrameworks 是一个旨在助力你进行开创性工作的开源 C++ 工具箱,提供了简单且直观的实验框架.该工具箱具有常见的工具,并集合了众多常见的库: OpenGL, GLEW, GLUT, ...
- 采用WebService客户端调用WSDL/SOAP网络报错的解决办法
WebService接口是网络传输控制的重要途径,在Windows系统下运行客户端时,平时一直能正确运行,但某天可能突然会发生调用wsdl soap邮件标头无法识别等莫名其妙的错误提示,出现这种情况一 ...
- wpf 事件参数 绑定到viewmdoel
public sealed class EventCommand : TriggerAction<DependencyObject> { public static readonly De ...
- Debian下编译安装驱动模块
在Linux下,我们常有需要自己来编译安装驱动模块的情况,例如要安装显卡驱动,要安装无线驱动,有的时候某个程序的安装使用与需要安装相应的驱动模块.Debian Linux下的生活本已十分简单,使用ap ...
- HTML5离线缓存攻击测试
本实验采用局域网模拟,通过修改本地HOSTS文件来模拟域名以及DNS欺骗.合法网站使用Linux CentOS7的apache服务器搭建,IP为192.168.1.113,HOSTS文件中加入192. ...