Day14 文件操作

这篇博客介绍了Python中文件操作的基本流程,包括如何打开、读写和关闭文件,强调了二进制文件操作的注意事项。同时,文章还探讨了hashlib库的使用,讲解了hash加密的特点以及如何生成和使用hash摘要。
摘要由CSDN通过智能技术生成

Day14 文件操作

  1. hashlib的使用

    1. hash加密的特点

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

      1. 通过算法创建hash对象: hashlib.算法名()
      算法名:md5、shaXXX
      hash = hashlib.sha512()
      
      1. 添加数据

        • hash对象.update(数据)

        • 注意:数据必须是二进制数据,类型是bytes

          # hash.update(bytes('123456', encoding='utf-8'))
          hash.update('123456'.encode())
          
      2. 二进制和字符串之间的相互转换

        • 字符串转二进制:

          bytes(字符串, encoding='utf-8')
          字符串.encode()
          
        • 二进制转字符串:

          str(二进制, encoding='utf-8')
          二进制.decode()
          
      3. 获取摘要

        result = hash.hexdigest()
        print(result)   # e10adc3949ba59abbe56e057f20f883e
        
  2. 文件的操作

    1. 文件操作基本流程:打开文件 -> 操作文件(读、写) -> 关闭文件

    2. 打开文件

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

        • file - 需要打开的文件在计算机中的位置信息(文件路径),字符串

          ​ 绝对路径:文件在计算机中的全路径(一般从盘开始写)

          ​ 相对路径:. - 表示当前目录(当前代码文件所在的文件夹), ./可以省略
          ​ … - 表示当前目录的上层目录

        • mode - 文件打开方式,决定打开文件后后续能对该文件进行的操作以及操作数据的类型。

          ​ 第一组:‘r’、‘w’、‘a’ - 控制后续操作(是读还是写)

          ​ ‘r’ - 只读
          ​ ‘w’ - 只写, 会清空原文件内容
          ​ ‘a’ - 只写, 会保留原文件内容

          ​ 第二组:‘t’、‘b’ - 控制操作数据的类型
          ​ ‘t’ - 读操作返回的数据和写操作写入的数据是字符串(str)
          ​ ‘b’ - 读操作返回的数据和写操作写入的数据是二进制(bytes)

          ​ 第一组必须选一个,第二组可以不选,不选的时候默认是t
          ​ 注意:.二进制文件打开的时候必须带b

        • encoding - 文本文件的编码方式(需要保证写入数据采用的什么方式进行编码,读数据的时候就需要对应的方式解码)

          ​ 一般采用utf-8,但是很多windows文本默认编码方式是gbk

          ​ 注意:只有在以t的方式打开文本文件的时候才需要考虑给encoding赋值

          =========绝对路径===========
          open(r'/Users/yuting/授课/python2103/01语言基础/day14-异常捕获和文件操作/合同.txt')
          
          =========相对路径==========
          open(r'./合同.txt')
          open('合同.txt')
          open('./res/a.txt')
          
          open('../day14-异常捕获和文件操作/合同.txt')
          
          ========r是只读=========
          f = open
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值