模块(二)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的更多相关文章

  1. python--内置模块(二) os sys pickle json

    1.os模块 常用方法: os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目 ...

  2. 常用模块二(hashlib、configparser、logging)

    阅读目录 常用模块二 hashlib模块 configparse模块 logging模块   常用模块二 返回顶部 hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SH ...

  3. python全栈开发day22-常用模块二(hashlib、configparse、logging)

    一.昨日内容回顾 1.钻石继承 #新式类,本身或父类显示继承object #找名字的时候是广度优先顺序 #有mro方法,super方法, # super并不是单纯的找父类,和mro顺序是完全对应的 # ...

  4. python 模块二(os,json,pickle)

    #################################总结##################### os常用 os.makedirs('baby/安哥拉/特斯拉/黄晓明') os.mkd ...

  5. python之常用模块二(hashlib logging configparser)

    摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...

  6. 常用模块random/os/sys/time/datatime/hashlib/pymysql等

    一.标准模块 1.python自带的,import random,json,os,sys,datetime,hashlib等 ①.正常按照命令:打开cmd,执行:pip install rangdom ...

  7. [xml模块、hashlib模块、subprocess模块、os与sys模块、configparser模块]

    [xml模块.hashlib模块.subprocess模块.os与sys模块.configparser模块] xml模块 XML:全称 可扩展标记语言,为了能够在不同的平台间继续数据的交换,使交换的数 ...

  8. 【转】python模块分析之hashlib加密(二)

    [转]python模块分析之hashlib加密(二) hashlib模块是用来对字符串进行hash加密的模块,明文与密文是一一对应不变的关系:用于注册.登录时用户名.密码等加密使用.一.函数分析:1. ...

  9. Python 自学基础(四)——time模块,random模块,sys模块,os模块,loggin模块,json模块,hashlib模块,configparser模块,pickle模块,正则

    时间模块 import time print(time.time()) # 当前时间戳 # time.sleep(1) # 时间延迟1秒 print(time.clock()) # CPU执行时间 p ...

随机推荐

  1. 使用WPF技术模拟手机界面

    原文:使用WPF技术模拟手机界面 1. 前言 WPF(Windows Presentation Foundation),即"Windows呈现基础",它的目的非常明确,就是用来把数 ...

  2. 简化网站开发:SiteMesh小工具

    在一个站点的制备,几乎所有的页面将具有相同的部分.导航栏例如,顶,每一页都是一样的,在底部的版权声明,每一页还都是一样的. 因此,在顶部导航栏的准备.第一种方法是直接复制的所有导航栏的代码,这种方法是 ...

  3. Spring Boot MyBatis 通用Mapper插件集成 good

    看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用.如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/505 ...

  4. 关于Qt的事件循环以及QEventLoop的简单使用(QEventLoop::quit()能够终止事件循环,事件循环是可以嵌套的)

    http://www.cnblogs.com/-wang-cheng/p/4973021.html 1.一般我们的事件循环都是由exec()来开启的,例如下面的例子: 1 QCoreApplicato ...

  5. Html 空格与换行

    空格   换行 <br/>   调行距 <div style="line-height:10px"></div>

  6. DataTemplate

    DataTemplate作用是布局+数据绑定 使用DataTemplate 同时完成样式布局和数据绑定 <Window.Resources> <DataTemplate x:Key= ...

  7. #467 – 使用UniformGrid 均分行和列(Use a UniformGrid for Evenly Spaced Rows and Columns)

    原文 #467 – 使用UniformGrid 均分行和列(Use a UniformGrid for Evenly Spaced Rows and Columns) UniformGrid 布局面板 ...

  8. android L 关机流程图

    下面是简单的流程图,从Java到kernel层. ShutdownThread.java文件 stop playing music,因为后面可能要playing shutdown music. 代码如 ...

  9. 【Git】生成Patch和使用Patch

    1.生成Patch(俗称快照) 先来看看repo manifest 的用法 <1>cd /工作目录/项目目录/.repo/manifests <2>repo manifest ...

  10. UWP ListView

    ListViewItem项填充整个宽度最大化<ListView.ItemContainerStyle> <Style TargetType="ListViewItem&qu ...