zoukankan      html  css  js  c++  java
  • 文件修改

    须知一:

    硬盘空间无法修改,硬盘中的数据更新都是用新的内容覆盖旧的内容

    内容空间可以修改

    须知二:

    文件对应的是硬盘空间,硬盘不能修改应为文件本质也不能修改

    我们看到文件的内容可以修改,是如何实现的呢?

    思路:将硬盘中文件内容读入内存,然后在内存中修改完毕后再覆盖回硬盘

    具体的实现方式分为两种:

    1、将文件内容一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件

    优点:在文件修改过程中同一份数据只有一份

    缺点:会过多地占用内存

    2、以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完后写入临时文件...,删掉原文件,将临时文件重命名原文件名

    优点:不会占用过多的内存

    缺点:在文件修改过程中同一份数据存了两份

    import os

    with open('db.txt',mode='rt',encoding='utf-8') as read_f,
    open('.db.txt.swap',mode='wt',encoding='utf-8') as wrife_f:
    for line in read_f:
    wrife_f.write(line.replace('SB','kevin'))

    os.remove('db.txt')
    os.rename('.db.txt.swap','db.txt')
  • 相关阅读:
    关于路径的小知识点
    转发与重定向
    一种反复的读写文件的方法
    文字排版reportlab
    Qgis中插件的安装位置
    spyder打开文件假死解决
    地图跳跃-超级码力
    尾部的零
    一探torch.nn究竟“What is torch.nn really?”
    KAZE特征和各向异性扩散滤波
  • 原文地址:https://www.cnblogs.com/xiamenghan/p/9688630.html
Copyright © 2011-2022 走看看