zoukankan      html  css  js  c++  java
  • 文件操作 文件修改的两种方式

    须知:

    硬盘空间无法修改,硬盘中的数据更新都是用新的内容覆盖旧的内容
    内存控制可以修改
    直接移动指针修改内容效果
    源文件
    1111
    2222
    3333
    4444

    代码:

    with open(r'1.txt',mode='r+',encoding='utf-8') as f:
        f.seek(2)
        f.write('想要加上内容')

    文件改变后的效果:

    11想要加上内容44

    所以不能达到修改的效果。

    实现文件修改两种方法

    方式一,将文件中内容全部读取到,修改后覆盖掉原来的文件

    with open(r'yuan.txt',mode='r',encoding='utf-8') as f:
        data = f.read()
    with open(r'yuan.txt',mode='w',encoding='utf-8') as f:
        f.write(data.replace('msj','good'))

    缺点:大文件的修改十分吃内存

    方式二,逐行读取源文件的内容,并修改写到新文件上,删除原文件,将新文件重命名即可

    import os
    with open(r'yuan.txt',mode='r',encoding='utf-8') as rf,
        open('yuan.txt.swap',mode='w',encoding='utf-8') as wf:
        for line in rf:
            wf.write(line.replace('goodv','msj'))
    os.remove('yuan.txt')
    os.rename('yuan.txt.swap','yuan.txt')

    缺点:硬盘在某一时刻会出现两个文件

     
  • 相关阅读:
    常见面试题1
    勒索病毒防范方法
    VMware虚拟机打开后不兼容
    win10桌面显示我的电脑设置
    scala集合和Java集合对应转换操作
    scala中使用redis
    爬虫调研
    hadoop命令
    IDEA打jar包
    spark.mllib
  • 原文地址:https://www.cnblogs.com/msj513/p/9686307.html
Copyright © 2011-2022 走看看