模块(二)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. Program for Linux USB-devices driver step by step (ONE)

    Program for Linux USB-devices driver 開始啃硬骨头~ 这里我打算一步步给出USB device driver 的demo.希望有心能可以共同交流学习. 希望认识很多 ...

  2. Go 语言如果按这样改进,能不能火过 Java?

    据 InfoWorld 消息,为改进 Go 语言的开发工具,Go 可能会获得自己的语言服务器,类似于 Microsoft 和 Red Hat 的语言服务器协议. 消息是从 Go 语言开发者的讨论组中流 ...

  3. 漫谈 JVM —— 内存模型、线程、锁

    Java 内存模型(JMM),实际上的目的就是为了统一内存管理.这让我想到了,作为一个程序员总是想着有银弹,有一个代码能万能的在所有场景上.经过多次尝试我发现这是不可能的:需求在变,技术在更新,没有什 ...

  4. QWidget继承自QPaintDevice,这样就可以直接把QWidget传入QPainter的构造函数,比如QPainter(mylabel),然后设置QWidget的长宽后直接进行作画了

    比如用QLabel在主界面上画两条虚线: bool ContentWidget::eventFilter(QObject *obj, QEvent *event) { if(obj == line_l ...

  5. WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性

    原文:WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性 如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢? ...

  6. C++调用Python浅析

    环境 VS2005Python2.5.4 Windows XP SP3 简述 一般开发过游戏的都知道Lua和C++可以很好的结合在一起,取长补短,把Lua脚本当成类似动态链接库来使用,很好的利用了脚本 ...

  7. Have You Tried Delphi on Amazon Linux? (就是AWS用的Linux)

    The new Delphi Linux compiler enables customers to take new or existing Windows server applications ...

  8. AngularJS 1.4对动画系统进行了彻底的重构

    分享 <关于我> 分享  [中文纪录片]互联网时代                 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...

  9. C++的 RTTI 观念和用途(非常详细)

    自从1993年Bjarne Stroustrup [注1 ]提出有关C++ 的RTTI功能之建议﹐以及C++的异常处理(exception handling)需要RTTI:最近新推出的C++ 或多或少 ...

  10. vue补充

    一.安装vue-cli脚手架 1.淘宝镜像下载 用淘宝的国内服务器来向国外的服务器请求,我们向淘宝请求,而不是由我们直接向国外的服务器请求,会大大提升请求速度,使用时,将所有的npm命令换成cnpm即 ...