• python之文件操作的初识


    1. 操作文件

    1.1 操作的方法

    f = open("文件路径",mode="模式",encoding="编码")

    open()  # 调用操作系统打开文件
    mode    # 对文件的操作方式
    encoding # 文件的编码  -- 存储编码要统一
               win -- gbk
               linux -- utf-8
               mac   -- utf-8  最常用的就是utf-8
    

    1.2 mode的种类(识记)

    r 读
    
    w 清空写
    
    a 追加写
    
    rb 二进制读
    
    wb 二进制写
    
    ab 二进制追加写
    
    r+ 读写
    
    r+b 读写非文本文件
    

    f 文件句柄操作文件的相当于锅把

    2. 文件的读

    2.1读

    文件全部读取完后以后,再次读取就没有内容(识记点)

    2.2 读的方法:(识记)

    f = open("a",mode="r",encoding="gbk")
    print(f.read()) # 全部读取
    print(f.read(3)) # 字符读取
    print(f.readlin(()) # 读取一行内容中多个字符
    print(f.readlins(()) # 一行一行读取,存储到列表中 
    是换行
    

    2.3 文件的路径

    绝对路径: 从磁盘的根处查找

    相对路径: 相对于当前文件进行查找的

    import os
    print(os.getcwd())  *# 查看当前工作路径*
    
    print(repr("F:a文件初识.txt"))
    print("F:a文件初识.txt")
    

    2.4 for循环操作方法

    一行一行读取 -- 防止内存溢出
    f = open("a",mode="r",encoding="gbk")
    for i in f:  # 迭代读取
        print(i)
    

    3. 文件的写

    3.1 写的方法

    w 清空写  
    w 分为两步
        1. 没有文件,创建文件,有文件清空文件
        2. 再写入
    a 追加写
    
    f = open("day8",mode="w",encoding="utf-8")
    f.write("123")
    f.close()  # 关闭文件
    

    3.2 操作文件过程

    1.打开文件
    2.操作文件
    3.关闭文件
    
    例题
    f = open("a",mode="r",encoding="gbk")
    print(f.read())
    f.close()  # 关闭文件后就不能继续读取了
    
    f = open("a",mode="a",encoding="gbk")
    f.write("啊啊啊,好困啊")
    在文件末尾添加
    

    4. 读以及写非文本文件

    4.1 读非文本文件的方法

    f = open("1.jpg",mode="rb") # rb ,wb,ab 不能指定编码
    print(f.read())  # read()  全部读取
    print(f.read(3)) # 3表示读取前3个字节
    

    4.2 写非文本文件的方法

    import requests
    ret = requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png")
    f = open("2.jpg",mode="wb")
    f.write(ret.content)
    f.close()
    

    5. 文件的+模式

    5.1 mode种类 (识记)

    r 读  r+ 读写
    w 写  w+ 写读
    a 写  a+ 写读
    

    5.2 错误示范

    f = open("day8",mode="r+",encoding="utf-8")
    f.write("你好啊")
    print(f.read())
    # 这里mode用的是r+读写模式,识记实际操作是写读模式,所以错误❌操作
    

    5.3 正确示范

    f = open("day8",mode="r+",encoding="utf-8")
    print(f.read())
    f.write("脑瓜疼啊脑瓜疼")
    
    # -- 后期开发中使用频率比较低
    

    5.4 w+ 写读

    f = open("day8",mode="w+",encoding="utf-8")
    f.write("你您你你")
    print(f.read())
    

    5.4 a+ 追加写读

    f = open("a",mode="a+",encoding="gbk")
    print(f.tell())  # 查看的是字节
    f.seek(0)
    print(f.read(1)) # 字符
    f.write("真的废物")
    
    

    5.5 其他操作

    5.5.1 查看光标

    tell()  返回值 返回的就是当前光标的位置
    

    5.5.2 移动光标

      seek(0,0) 文件开始位置
      seek(0,1) 光标的当前位置
      seek(0,2) 文件末尾位置
      seek(3)   按照字节调节  使用utf-8是3 gbk是2
    

    6.with open 打开文件的方式

    6.1 方法:

    with open("day8",mode="r",encoding="utf-8") as f:  # 面向对象中上下文管理
        print(f.read())
    
    • with open 帮助自动关闭文件

    • with open 同时操作多个文件

    6.2 例题:

    with open("day8",mode="r",encoding="utf-8") as f,
        open("a",mode="w",encoding="gbk") as f1:
        print(f.read())
        f1.write("真饿!")
    

    7.文件的修改

    7.1 内容替换

    with open("day8",mode="r+",encoding="utf-8")as f:
        content = f.read() # 先读
        content = content.replace("您","你") #将您替换成你
        f.seek(0,0) # 将光标移动到行首位置
        f.write(content) # 将内容写入文件
    

    7.2 文件的修改

    原理: 打开一个旧文件,同时打开一个新的文件

    with open("day8",mode="r",encoding="utf-8")as f, # 打开一个旧的文件
    open("new_day8",mode="a",encoding="utf-8")as f1:  # 打开一个新的文件
        for i in f: # 循环旧文件中的内容
            content = i.replace("你","我") # 将旧文件内容中的你换成我
            f1.write(content) # 写入到新文件中
    # 关键的来了
    import os # 导入系统模块 # 备份原数据(重新起个名字),然后删除原文件
    os.remove("day8")  # 原数据可以使用rename来做备份 
    os.rename("new_day8","day8") # 将替换后的新文件改名成旧文件名字
    

    代码统计

    # 文件夹的打开:
    f = open("文件路径",mode="模式",encoding="编码")
    # 文件的读取
    f = open("a",mode="r",encoding="gbk")
    print(f.read()) # 全部读取
    print(f.read(3)) # 字符读取
    print(f.readlin(()) # 读取一行内容中多个字符
    print(f.readlins(()) # 一行一行读取,存储到列表中 
    是换行
    # 获取当前工作路径
    import os
    print(os.getcwd())  *# 查看当前工作路径*
    # for循环操作方法
    f = open("a",mode="r",encoding="gbk")
    for i in f:  # 迭代读取
        print(i) #一行一行读取 -- 防止内存溢出
    # 文件的写
    f = open("day8",mode="w",encoding="utf-8")
    f.write("123")
    f.close()  # 关闭文件
    f = open("a",mode="r",encoding="gbk")
    print(f.read())
    f.close()  # 关闭文件后就不能继续读取了
    
    f = open("a",mode="a",encoding="gbk")
    f.write("啊啊啊,好困啊")
    在文件末尾添加
    
    
  • 相关阅读:
    C++实现单例模式
    进程间通信(IPC)介绍
    Python装饰器
    Python中import的使用
    Python中is和==的区别
    SK-Learn使用NMF(非负矩阵分解)和LDA(隐含狄利克雷分布)进行话题抽取
    Focal Loss for Dense Object Detection
    YOLOv3: An Incremental Improvement
    YOLO9000: Better, Faster, Stronger
    You Only Look Once: Unified, Real-Time Object Detection
  • 原文地址:https://www.cnblogs.com/zanao/p/11020377.html
Copyright © 2020-2023  润新知