• python 文件操作(深度学习)


    文件操作 (day7内容扩展)

    1 文件基本操作

    obj = open('路径',mode='模式',encoding='编码')
    obj.write()
    obj.read()
    obj.close()

    2 打开模式

    基本模式
    #打开文件
    f=open('要打开文件路径',mode='r/w/a/',encoding='文件原来编码') #f为接收变量
    #操作文件
    data = f.()  # 读取文件内部全部内容,data为接收内容
    f.write('要写内容')
    #关闭文件
    f.close()
    #文件打开新操作,自动关闭
    with open('text.txt',mode= 'a',encoding='utf-8') as v:
       data = a.read()
    # 缩进中的代码执行完毕之后自动关闭
    • r / w / a

    • r+ / w+ / a+

    • rb / wb / ab

    • r+b / w+b / a+b

      w/wb

      • w 模式传入的是字符串,写入时计算机进行了两步操作:

        1. 将写入内容根据指定编码encoding转换为对应二进制语言

          # 字符串转化为二进制
          mes = '示例'
          a = mes.encode('utf-8')
          #二进制文件转化为字符串
          mes = '01010101010100'
          a = mes.decode('utf-8')
        2. 将二进制写入到文件里

          • 一般用于文字写入

      • wd 模式传入的是二进制文件,想写入字符串需要进行转换操作

        1. 要把写入内容先转化为二进制语言(encode)

        2. wd再将二进制文件写入文件

          • 一般用于图片/音频/视频/未知编码写入

      r/rb

      • r 读取时计算机进行了两步操作:

        1. 读取硬盘上的二进制

        2. 按照指定编码转换成对应文件

      • rb 读取到的是二进制数据,不进行任何转换.

      a/ab

      • 用法类比w/r

    3 操作

    • read() , 全部读到内存

    • read(1)

      • 1表示一个字符

        obj = open('a.txt',mode='r',encoding='utf-8')
        data = obj.read(1) # 1个字符
        obj.close()
        print(data)
      • 1表示一个字节

        obj = open('a.txt',mode='rb')
        data = obj.read(3) # 1个字节
        obj.close()
    • write(字符串)

      obj = open('a.txt',mode='w',encoding='utf-8')
      obj.write('中午你')
      obj.close()
    • write(二进制)

      obj = open('a.txt',mode='wb')

      # obj.write('中午你'.encode('utf-8'))
      v = '中午你'.encode('utf-8')
      obj.write(v)
      obj.close()
    • seek(光标字节位置),无论模式是否带b,都是按照字节进行处理。

      obj = open('a.txt',mode='r',encoding='utf-8')
      obj.seek(3) # 跳转到指定字节位置
      data = obj.read()
      obj.close()

      print(data)

      obj = open('a.txt',mode='rb')
      obj.seek(3) # 跳转到指定字节位置
      data = obj.read()
      obj.close()

      print(data)
    • tell(), 获取光标当前所在的字节位置

      obj = open('a.txt',mode='rb')
      # obj.seek(3) # 跳转到指定字节位置
      obj.read()
      data = obj.tell()
      print(data)
      obj.close()
    • flush,强制将内存中的数据写入到硬盘

      v = open('a.txt',mode='a',encoding='utf-8')
      while True:
        val = input('请输入:')
        v.write(val)
        v.flush()

      v.close()

    4 关闭文件

    文艺

    v = open('a.txt',mode='a',encoding='utf-8')

    v.close()

    二逼

    with open('a.txt',mode='a',encoding='utf-8') as v:
       data = v.read()
    # 缩进中的代码执行完毕后,自动关闭文件

     

    5 文件内容的修改

    with open('a.txt',mode='r',encoding='utf-8') as f1:
       data = f1.read()
    new_data = data.replace('飞洒','666')

    with open('a.txt',mode='w',encoding='utf-8') as f1:
       data = f1.write(new_data)

    大文件修改

    • 在大文件读取时,不能一次性读取,需要按字节read(字节数)或for循环按行读取

    with open('a.txt',mode='r',encoding='utf-8') as f1,open('b.txt',mode='w',encoding='utf-8') as f2:   #打开文件a,b
       for line in f1: #按行取a的内容
           new_line = line.replace('666','999') #修改内容
           f2.write(new_line) #修改后的写入b,完成修改

     

  • 相关阅读:
    初步掌握HBase
    基于HBase0.98.13搭建HBase HA分布式集群
    获取当前目录中的文件个数
    MapReduce链接作业
    MapReduce二次排序
    使用map端连接结合分布式缓存机制实现Join算法
    字符串匹配算法-BM
    统计电视机顶盒中无效用户数据,并以压缩格式输出有效用户数据
    字符串匹配算法-KMP
    MapReduce中的Join算法
  • 原文地址:https://www.cnblogs.com/bigox/p/10671249.html
Copyright © 2020-2023  润新知