文件操作的基础

1.文件操作的初始

  • 利用python代码写一个软件,去操作文件

    • 文件路径:pash
    • 打开模式:读,写,追加,读写,写读等
    • 编码方式:utf-8,gbk等
  • 基本格式

    f1 = open('d:\主妇空姐模特联系方式.txt',encoding='utf-8',mode='r')
    content = f1.read()
    print(content)
    f1.close()
    
  • 代码的解释

    open  是内置函数,open底层调用的是操作系统的借口。
    f1 变量,也称文件句柄,对文件进行的任何操作,都得通过文件句柄f1.的方式
    encoding:可以不写,不写参数,默认使用编码就是操作系统的编码
      windows :gbk
      linux: utf-8
      mac : utf-8
      f1.close()关闭文件
    
  • 文件操作的三部曲:

    1. 打开文件
    2. 对文件句柄进行相应操作
    3. 关闭文件

2.文件操作的读

  • 读的模式

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

    • r

      • read() 全部读出来
      • read(n) 按照字符读取
      • readline() 读出一行
      • readlines 返回一个列表,列表中每个元素是原文件的每一行
    • for 循环读出

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

      read()       全部读出来
      f = open("a.txt",mode="r",encoding="utf-8")
      content = f.read()
      print(content)
      f.close()
      
      read(n)     按照字符读取
      f = open("a.txt",mode="r",encoding="utf-8")
      content = f.read(10)
      print(content)
      f.close()
      
      readline()  读出一行
      f = open("a.txt",mode="r",encoding="utf-8")
      content = f.readline()
      print(content)
      f.close()
      
      readlines    返回一个列表,列表中每个元素是原文件的每一行
      f = open("a.txt",mode="r",encoding="utf-8")
      content = f.readlines()
      print(content)
      f.close()
      
      f = open("a.txt",mode="r",encoding="utf-8")
      for i in f:
          print(i)
      f.close()
      

3.文件操作的写

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

    # 没有文件,创建文件,写入内容
    f = open('b.txt',encoding='utf-8',mode='w')
    f.write('随便写一点')
    f.close()
    
    # 如果文件存在,先清空原文件内容,在写入新内容
    f = open('文件的写',encoding='utf-8',mode='w')
    f.write('太白最帅....')
    f.close()
    
    
    # wb
    # f = open('美女.jpg',mode='rb')
    # content = f.read()
    # f.close()
    #
    # f1 = open('美女2.jpg',mode='wb')
    # f1.write(content)
    # f1.close()
    
    
    

4.文件操作的追加

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

    # 没有文件创建文件,追加内容
    f = open('文件的追加',encoding='utf-8',mode='a')
    f.write('太白最帅....')
    f.close()
    
    # 有文件,在原文件的最后面追加内容。
    f = open('文件的追加',encoding='utf-8',mode='a')
    f.write('大壮,舒淇,b哥,雪飞')
    f.close()
    

5.文件操作的其他模式

  • 读并追加,顺序不能错

    f = open("a.txt",mode= "r+",encoding="utf-8")
    content = f.read()
    print(content)
    f.write("鸡汤都是吃鸡的人,流传下来的言语")
    f.close()
    
    # 错误实例
    f = open("a.txt",mode= "r+",encoding="utf-8")
    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("a.txt",mode="r",encoding="utf-8")as f:
    	print(f.read)
    
  • 优点2:

    with open('文件的读', encoding='utf-8') as f1,\
            open('文件的写', encoding='utf-8', mode='w')as f2:
        print(f1.read())
        f2.write('hfdsjkghkajhsdjg')
    

8.文件操作的改

  • 文件操作改的流程:

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

    import os
    with open('a.txt',mode="r",encoding="utf-8")as f1,\
            open("b.txt",mode="w",encoding="utf-8")as f2:
        old_content = f1.read()
        new_content = old_content.replace("alex","SB")
        f2.write(new_content)
    os.remove("a.txt")
    os.rename("b.txt","a.txt")
    
    
    
    import os
    with open("a.txt",mode="r",encoding="utf-8") as f1,\
        open("b.txt",mode="w",encoding="utf-8")as f2:
        for i in f1:
            new_content = i.replace("SB","alex")
            f2.write(new_content)
    os.remove("a.txt")
    os.rename("b.txt","a.txt")
    
    
    有关清空的问题:
    关闭文件句柄,再次以w模式打开此文件时,才会清空。
    with open('文件的写', encoding='utf-8',mode='w') as f1:
        for i in range(9):
            f1.write('恢复贷款首付款'
    
    
posted @ 2019-05-09 20:59  菜鸟学小白  阅读(117)  评论(0)    收藏  举报
ヾ(≧O≦)〃嗷~