• Python文件操作


        1. 文件操作
            open 打开
            f = open(文件路径, mode="模式", encoding="编码格式") 最最底层操作的就是bytes
            打开一个文件的时候获取到的是一个文件句柄.
            绝对路径
                从磁盘根目录开始寻找
            相对路径
                相对于当前程序所在的文件夹
                ../ 上一层文件
                文件夹/ 进入xxx文件夹
        2. mode:
            r: 读取,只读.
                读取文件的相关操作
                    1. read()
                        默认: 读取文件内容(全部)
                        read(n) 读取n个字符
                    2. readline()  读取一行
                    3. readlines() 读取全部. 返回列表
                    (最重要)4. for line in f: 每次读取一行内容
            w:
                写入. 只写
                创建文件
                会清空文件
            a:
                也可以创建文件
                追加写
            r+:  对于文件而言. 应该有的操作就两个:读, 写
                读写操作
            w+:
                写读操作
            a+:
                追加写读
            所有带b的表示直接操作的是bytes, 当处理非文本文件的时候.
            rb
            wb
            ab: 断点续传
            r+b
            w+b
            a+b
        3. 文件操作中关于文件句柄的相关操作
            seek() 移动光标
            f.seek(0) 移动到开头(最多)
            f.seek(0, 2) 移动到末尾
                seek:两个参数
                    1. 表示偏移量
                    2. 从xxx开始偏移, 默认0, 开头   1, 当前位置    2, 末尾
            tell
                返回光标所在的位置
        4. 文件修改,
        文件修改: 只能将文件中的内容读取到内存中, 将信息修改完毕, 然后将源文件删除, 将新 文件的名字改成老⽂文件的名字. 
    import os
    with open("⼩娃娃", mode="r", encoding="utf-8") as f1,
        open("⼩娃娃_new", mode="w", encoding="UTF-8") as f2:
        content = f1.read()
        new_content = content.replace("冰糖葫芦", "⼤⽩梨")
        f2.write(new_content)
    os.remove("⼩娃娃") # 删除源⽂件
    os.rename("⼩娃娃_new", "⼩娃娃") # 重命名新⽂件

        弊端: ⼀次将所有内容进行读取. 内存溢出. 解决方案: 一行一行的读取和操作

    import os
    with open("⼩娃娃", mode="r", encoding="utf-8") as f1,
        open("⼩娃娃_new", mode="w", encoding="UTF-8") as f2:
        for line in f1:
            new_line = line.replace("⼤⽩梨", "冰糖葫芦")
            f2.write(new_line)
    os.remove("⼩娃娃") # 删除源⽂件
    os.rename("⼩娃娃_new", "⼩娃娃") # 重命名新⽂件
  • 相关阅读:
    Spring-boot内置的程序管理监控工具-Actuator
    分表工具类(根据唯一字符串)
    ES设计及规范
    测试单元Junit一直进不去@test方法解决方案
    MAC OS怎样将普通成员升级为管理员
    elasticSearch小结
    Mysql 查询条件中字符串尾部有空格也能匹配上的问题
    gitlab进行meger代码回滚
    ES与关系型数据库的通俗比较
    kafka的生产者配置以及发送信息的三种方式
  • 原文地址:https://www.cnblogs.com/wangm-0824/p/10073722.html
Copyright © 2020-2023  润新知