zoukankan      html  css  js  c++  java
  • 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", "⼩娃娃") # 重命名新⽂件
  • 相关阅读:
    js 的一些兼容性写法
    浏览器 Event对象 及 属性 的兼容处理
    js 三元表达式 复杂写法
    Angular.js中使用$watch监听模型变化
    Android学习之——ViewPager及应用引导页的开发
    Android开发中常用的库总结(持续更新)
    Android学习之——GridView
    Android开发工具——Android studio1.0正式版使用技巧
    Android学习之——ListView下拉刷新
    Android学习之——ListView
  • 原文地址:https://www.cnblogs.com/wangm-0824/p/10073722.html
Copyright © 2011-2022 走看看