文件修改

Posted xiamenghan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件修改相关的知识,希望对你有一定的参考价值。

须知一:

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

内容控制可以修改

 

须知二:

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

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

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

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

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‘)








以上是关于文件修改的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

vscode中设置vue代码片段

sublime的片段功能

vc++2010设置和c#一样的代码段,vs2010 两下tab设置

在使用ViewPager时尝试从其父活动修改片段时出现空指针异常