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

    day08

    文件操作:

    open() :打开

    f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding="文件的编码")内置函数

    # f = open("萝莉小姐姐电话号",mode="r",encoding="utf-8")
    # print(f.read())
    # f.close()
    
    • f :文件句柄

    • file : 文件的位置(路径)

      ​ 路径:推荐使用相对路径**********

      ​ 1、绝对路径 —— C:usermeetpython24操作

      # f = open("F:s24day08萝莉小姐姐电话号","r",encoding="utf-8")
      # print(f.read())
      

      ​ 2、相对路径

      # f = open("../day03/萝莉小姐姐电话号","r",encoding="utf-8")
      # print(f.read())
      

      ​ 3、../ 返回上一层 ,至少要写你选择的文件的上一级文件夹

      ​ 4、1、\ 路径转义

      ​ 2、 r"C:..."

      # f = open(r"C:user
      ets24day03萝莉小姐姐电话号","r",encoding="utf-8")
      

      ​ repr():显示数据原生态

      # s = "[1,'2',3,4]"
      # print(s)
      # print(repr(s))  # repr -- 显示数据原生态
      
    • mode :操作文件的模式

    • encoding :文件的编码方式

    with open: 自动关闭文件

    with open(内容)as f:

    ​ 其他代码

    # with open("萝莉小姐姐电话号","r",encoding="gbk")as f,
    #         open("萝莉小姐姐电话号.txt","w",encoding="gbk")as f1:
    #     for i in f:
    #         s1 = i.replace("大烧饼","井盖")
    #         f1.write(s1)
    #
    # import os
    # os.rename("萝莉小姐姐电话号","萝莉小姐姐电话号.bak")
    # os.rename("萝莉小姐姐电话号.txt","萝莉小姐姐电话号")
    
    # with open("萝莉小姐姐电话号","r",encoding="gbk")as f:
    #     pass # 缩进里操作文件
    # print(f.read())  # 文件及已经关闭了
    

    操作文件步骤:

    1、打开文件

    2、操作文件

    3、关闭文件

    文件操作模式:

    r、w、a(重要)

    • r操作:

      read():全部读取

      read(3):读三个字,按照字符进行读取

      readline():按行读取,自动换行,用strip()去掉换行符

      readlines():一行一行读取存在列表中

      文件读过之后光标到已读文字的后面

      # f = open("萝莉小姐姐电话号",mode="r",encoding="utf-8")
      # print(f.read())    #全部读取
      # print(f.read(5))   #按照字符进行读取
      # print(f.read())
      
      # print(f.readline())  # 读取一行内容,自动换行
      # print(f.readline())  # "常鑫你就是大帅比
      "
      # print(f.readline().strip()) #去除换行符
      
      # print(f.readlines())  # 一行一行的读取,存放在列表中
      

      解决大文件:

      for i in f:
          print(i) # 本质就是一行一行进行读取
          
      # print(f.readline())
      # print(f.readline())
      # print(f.readline())
      
    • w操作:检查是否有文件,没有就创建

      write(字符串):分为两步

      1、先清空文件

      2、写入文件

      很多write()时候,第一次打开文件的时候清空文件,后面的不清空

      # f = open("萝莉小姐姐电话号","w",encoding="utf-8")
      # f.write("123456789
      ")
      # f.write("123456789
      ")
      # f.write("123456789
      ")
      # f.write("123456789
      ")
      
    • a操作 :追加写,检查是否有文件,没有就创建

      在源文件的基础上进行追加

      write()

      # f = open("../day03/萝莉小姐姐电话号","a",encoding="utf-8")
      # f.write("138383848
      ")
      # f.write("138383850
      ")
      

    rb、wb、ab(次要)

    • rb操作

      read() :全部读取

      read(3):按照字节读取

      # f1 = open("1.jpg","rb")
      # print(f1.read())   # 全部读取
      # print(f1.read(3))  # 按照字节读取
      
      # f = open("下载.jpg","rb")
      # print(f.read())
      
    • wb操作

      write():写入字节

      # f = open("3.jpg","wb")
      # f.write(f1.read())
      
    • ab操作(不常用)

      write():追加

      # f = open("2.jpg","ab")
      # f.write("你好啊".encode("utf-8"))
      

    r+、w+、a+(没啥用)

    • r+操作:读写——先读后写

      # 错误的操作 (坑)
      # f = open("萝莉小姐姐电话号","r+",encoding="utf-8")
      # f.write("常鑫你太美")
      # print(f.read())
      
      
      # 正确的操作:
      # f = open("萝莉小姐姐电话号","r+",encoding="utf-8")
      # print(f.read())
      # f.write("常鑫你太美")
      
    • w+操作:清空写+读(读不到内容)

      # f = open("萝莉小姐姐电话号","w+",encoding="utf-8")
      # f.write("常鑫你太美")
      # print(f.tell())
      # # f.seek(15)         #
      # print(f.tell())
      # print(f.read())
      
    • a+操作:追加写+读(读不到内容),

      • 注意:将光标移动到某个位置进行,写入的时候还是在文件的末尾
      # f = open("萝莉小姐姐电话号","a+",encoding="utf-8")
      # f.write("常鑫你太美")
      # print(f.tell())   # 字节数
      # print(f.seek(0,0))  # 0将光标移动到文件的头部
      # print(f.read())
      

    其他操作:

    • tell():查看光标,返回的是字节数

    • seek():移动光标

      seek(一个数字):按照字节来移动(中文:3个字节,英文:1个字节),按照编码集自己进行计算

      seek(0):将光标移动到文件头部

      seek(0,0) :移动到文件的头部

      seek(0,1) :当前位置

      seek(0,2) :移动到文件的末尾

      # f = open("萝莉小姐姐电话号","r",encoding="gbk")
      # print(f.read(3)) # 字符
      
      # f = open("萝莉小姐姐电话号","rb")
      # print(f.read(3))   # 字节
      
      # f = open("萝莉小姐姐电话号","r",encoding="gbk")
      # print(f.read(3))     # 字符
      
      # 错误操作
      # f = open("萝莉小姐姐电话号","r",encoding="gbk")
      # f.seek(-1)
      # print(f.read())
      
      
    • 文件修改

      1、利用read()赋值给s字符串,然后用replace()替换

      2、利用for循环,一句一句替换

      # f = open("萝莉小姐姐电话号","r",encoding="gbk")
      # s = f.read()
      # s1 = s.replace("你太美","吃煎饼")
      
      # f1 = open("萝莉小姐姐电话号","w",encoding="gbk")
      # f1.write(s1)
      
      
  • 相关阅读:
    P3811乘法逆元
    P4549裴蜀定理
    备用代码区
    其他板子整理
    DP
    图论板子整理
    约数
    浅谈假学习假努力
    质数
    P1019 单词接龙
  • 原文地址:https://www.cnblogs.com/NiceSnake/p/11203612.html
Copyright © 2011-2022 走看看