day14 hashlib的使用与文件操作

本文介绍了Python中hashlib库的使用,包括md5和sha系列的摘要算法,强调了hash加密的特点。同时,详细讲解了文件操作,如数据持久化、文件内容的读写,强调了文件操作的基本流程和不同模式的使用。
摘要由CSDN通过智能技术生成

hash加密(摘要)的算法主要有两类:md5和sha-X系列

  • 1.hash加密的特点

    """
    1)hash算法生成的摘要不可逆。(不能通过密文来获取原文)
    2)只有相同的数据通过相同的算法得到的摘要才是一致的。
    3)不管原数据多大,产生的摘要的大小(长度)一致。
    “”"

import hashlib	# 导入hashlib模块
  • 2.生成hash摘要
    """
    1)通过算法创建hash对象
    算法名:md5、shaXXX
    “”"
hash = hashlib.md5()
  • 2)添加数据
    #hash对象.update(数据)
    #注意:数据必须是二进制数据,类型是bytes
    #补充:二进制和字符串之间的相互转换

"""
字符串转二进制:
bytes(字符串,encoding=‘utf-8’)
字符串.encode()

二进制转字符串
str(二进制,encoding=‘utf-8’)
二进制.decode()
“”"

# hash.update(bytes('123456', encoding='utf-8'))
hash.update('123456'.encode())
  • 3.获取摘要
result = hash.hexdigest()
print(result, type(result))   # e10adc3949ba59abbe56e057f20f883e <class 'str'>

练习:判断文件内容是否被修改

hash = hashlib.md5()
with open('合同.txt', 'rb') as f:
    hash.update(f.read())

print(hash.hexdigest())

文件操作

1.数据持久化

什么时候需要数据持久化
"""
1)用文件操作需要持久化的数据
2)在需要这个数据的时候从文件中读这个数据
3)在数据发生改变后,需要将最新的数据写入到文件中
“”"

"""
程序中保存的数据默认都是保存在运行内存中的,在程序运行结束的时候都会被释放。
如果希望这次运行程序产生的数据在下次程序运行的时候还能用,就需要将数据保存到硬盘中。
将数据保存到硬盘的过程就叫数据持久化的过程,硬盘保存数据的基本单元是文件,将数据保存到硬盘中就是将数据保存到文件中。
程序中数据持久化的常用文件类型:数据库文件( .db ; .sqlite 等)、plist文件、json文件、
txt文件、二进制文件(图片、视频、音频、exe可执行文件)
“”"

2.文件操作 - 操作文件的内容

"""
文件操作基本流程:打开文件、操作文件(读、写)、关闭文件
“”"

  • 1)打开文件

    """
    open(file, mode=‘r’, *, encoding=None) - 以指定方式打开指定文件,返回一个文件对象

    file - 需要打开的文件在计算机中的位置信息(文件路径),字符串
    绝对路径:文件在计算机中的全路径(一般从盘开始写)
    相对路径:. (表示当前目录)
    .. (表示当前目录的上层目录)
    mode - 文件打开方式,决定打开文件后后续能对改文件执行的操作,以及操作数据的类型。
    第一组:‘r’‘w’‘a’ - 控制后续操作(读还是写)
    第二组:‘t’‘b’ - 控制操作数据的类型
    第一组必须选一个(默认’r’),第二组可以不选(默认是’t’)
    ‘r’ - 只读
    ‘w’ - 只写,清空原文件内容
    ‘a’ - 只写,会保留原文件内容
    ‘t’ - 读取的数据和写入的数据是字符串(str)
    ‘b’ - 读取的数据和写入的数据是二进制(byte)
    注意:1.二进制文件打开的时候必须带b
    2.
    encoding - 文本文件的编码方式(需要保证写入数据的编码和读取数据的编码保持一致)
    默认采用utf-8,(很多Windows文本默认编码方式是gbk)
    注意:只有在以t的方式打开文本文件的时候才需要考虑encoding赋值
    “”"

绝对路径 - 可以打开电脑上任意位置的任意文件

open(r'F:\ppt.txt')

相对路径 - 打开当前工程所在的任意文件

open(r'.\世界上最遥远的地方.txt')
open(r'世界上最遥远的地方.txt')  # 效果同上
open(r'.\res\01.txt')
open(r'..\day14 异常捕获和文件操作\res\01.txt')
open(r'..\..\python2103\day14 异常捕获和文件操作\res\01.txt')

’r’ - 只读

f = open(r'..\..\ppt.txt', 'r')
f.read()
f.write('abc')  # io.UnsupportedOperation: not writable

’a’ - 只写,并保留原文件内容

f = open(r'..\..\ppt.txt', 'a'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值