zoukankan      html  css  js  c++  java
  • 文件操作 08

    1. 文件操作的初识

      • 一个神秘的联系方式.txt
      • 利用python 代码写一个很low的软件,去操作文件。
        • 文件路径:path
        • 打开方式:读 写 追加 读写 写读等
        • 编码方式: utf-8 gbk gbk2312等
      f1 = open('E:一个神秘的联系方式.txt',encoding='utf-8',mode='r')
      content = f1.read()
      print(content)
      f1.close()
      
      • 文件操作三个步骤:

        1. 打开文件
        2. 对文件句柄进行相应的操作
        3. 关闭文件
      • 报错原因

        • UnicodeDecodeError:文件存储时与文件打开时编码本运用不一致。

        • 路径分隔符产生问题:

          加r r'E:一个神秘的联系方式.txt'
          加\ 'E:\一个神秘的联系方式.txt'
          
    2. 文件操作的读

      r, rb , r+ , r+b ,四种模式

      r : read()** read(n) readline() readlienes()

      for ***

      rb : 操作的是非文本的文件。图片,视频,音频。

      # f = open('E:文件1.txt',encoding='utf-8',mode='r')
      # s = f.read()
      # print(s)
      # f.close()
      
      #readlines 返回一个列表,列表中的每个元素是原文件的每一行
      # f = open('E:文件1.txt',encoding='utf-8',mode='r')
      # s = f.readlines()
      # print(s)
      # f.close()
      
      #for 读取
      # f = open('E:文件1.txt',encoding='utf-8')
      # for line in f:
      #     print(line)
      # f.close()
      
      # f = open('A{$DQMY5PVV0KEWW~(BB]6S.png',mode='rb')
      # for line in f:
      #     print(line)
      # f.close()
      
    3. 文件操作的写

      w , wb , w+ , w +b 四种模式

      #没有文件,创建文件,写入内容
      # f = open('文件的写',encoding='utf-8',mode='w')
      # f.write('随便写上一点')
      # f.close()
      #如果文件存在,先清空原文件内容,在写入新的内容
      # f = open('文件的写',encoding='utf-8',mode='w')
      # f.write('holting 很牛')
      # f.close()
      
      #wb
      # f = open('A{$DQMY5PVV0KEWW~(BB]6S.png',mode='rb')
      # conent = f.read()
      # f.close()
      # f1 = open('tupian.png',mode='wb')
      # f1.write(conent)
      # f1.close()
      
    4. 文件操作的追加

      a , ab , a+ ,a+b 四种模式

      没有文件创建文件,追加内容
      f = open('文件追加',encoding = 'utf-8',mode='a')
      f.write('henhao')
      f.close()
      
      有文件,在原文件的最后面追加内容
      f = open('文件追加',encoding = 'utf-8',mode='a')
      f.write('xuexi')
      f.close()
      
      
    5. 文件操作的其他模式 r+

      读写追加 #顺序不能错误
      f = open('文件的读写',encoding='utf-8',mode='r+')
      content =f.read()
      f.write('人的一切痛苦,本质上都是对自己无能的愤怒,,')
      f.close()
      
      错误示例:
      # f = open('文件的读写', encoding='utf-8', mode='r+')
      # f.write('人的一切痛苦,,,本质都是对自己无能的愤怒,,,')
      # content = f.read()
      # print(content)
      # f.close()
      
    6. 文件操作的其他功能

      总结:

      三大方向:

      读:四种模式 r rb r+ r+b

      写:四种模式 w wb w+ w +b

      追加: 四种模式 a ab a+ a+b

      相应的功能:对文件的句柄的操作:read read(n)readline() readlines() write()

      #tell 获取光标的位置,单位字节
      # f = open('文件的写', encoding='utf-8')
      # print(f.tell())
      # content = f.read()
      # # print(content)
      # print(f.tell())
      # f.close()
      
      #seek 调整光标的位置
      # f = open('文件的写', encoding='utf-8')
      # f.seek(7)
      # content = f.read()
      # print(content)
      # f.close()
      
      #flush 强制刷新
      # f = open('文件的其他功能', encoding='utf-8',mode='w')
      # f.write('fdshdsjgsdlkjfdf')
      # f.flush()
      # f.close()
      
    7. 打开文件的另一种方式

      优点1:不用手动关闭文件句柄
      with open('文件的读',encoding='utf-8') as f1:
      	print(f1.read())
      
      with open('文件的读',encoding='utf-8') as f1,
      		open('文件的写',encoding='utf-8') as f2:
      	print(f1.read())
      	f2.write('holting')
      缺点: 待续
      
    8. 文件操作的改

    • 文件操作改的流程:

      1. 以读的模式打开原文件
      2. 以写的模式创建一个新的文件
      3. 将原文件读出来修改成新内容,写入新文件
      4. 将原文件删除
      5. 将原文件重命名成原文件
    • 具体代码

      #low版
      # import os
      # with open('文件的写',encoding='utf-8') as f1,
      #     open('文件的写.bak',encoding='utf-8',mode='w') as f2:
      #     old_content =f1.read()
      #     new_content =old_content.replace('我','你')
      #     f2.write(new_content)
      # os.remove('文件的写')
      # os.rename('文件的写.bak','文件的写')
      
      #进阶版
      import os
      with open('文件的写',encoding='utf-8') as f1,
          open('文件的写.bak',encoding='utf-8',mode='w') as f2:
          for line in f1:
              new_line = line.replace('我','你')
              f2.write(new_line)
      os.remove('文件的写')
      os.rename('文件的写.bak','文件的写')
      
      # 有关清空的问题:
      # 关闭文件句柄,再次以w模式打开此文件时,才会清空。
      # with open('文件的写', encoding='utf-8',mode='w') as f1:
      #     for i in range(9):
      #         f1.write('holting')
      
      
    • 文件操作:

      • r w a rb wb r+ ab 重点记
      • read() write tell seek flush
      • 文件的改的代码必须会默写。

      注意

      dic = {}
      cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041']
      locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南','京':'北京','黑':'黑龙江'}
      # 方法一
      for i in cars:
      #     if locals[i[0]] not in dic:
      #         dic[locals[i[0]]] = 1
      #     else:
      #         dic[locals[i[0]]] += 1
      # print(dic)
      方法二
      # for i in cars:
      #     dic[locals[i[0]]] = dic.get(locals[i[0]],0) + 1
      # print(dic)
      
  • 相关阅读:
    问题6-10
    7.19 1
    经济学人常见词汇清单
    英语广播原声听力100篇MP3及听力原文
    6.30.2018
    6.26
    6.26
    6.26
    6.25
    6.25
  • 原文地址:https://www.cnblogs.com/zhaoxinblog/p/13221529.html
Copyright © 2011-2022 走看看