博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件修改
阅读量:4925 次
发布时间:2019-06-11

本文共 643 字,大约阅读时间需要 2 分钟。

须知一:

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

内容空间可以修改

 

须知二:

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

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

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

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

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

转载于:https://www.cnblogs.com/xiamenghan/p/9688630.html

你可能感兴趣的文章
hdu4812 点分治水题
查看>>
最长回文子串(Manacher算法)
查看>>
第一次博客
查看>>
写给自己
查看>>
部署全局ajax处理
查看>>
Codeforces Round #403(div 2)
查看>>
大型网站处理高并发要点技术
查看>>
Codeforces-1059D:Nature Reserve问最大的圆包含全部点
查看>>
牛客练习赛24
查看>>
转发推荐系统文章
查看>>
并排,快排和冒泡排序
查看>>
BZOJ 1073: [SCOI2007]kshort
查看>>
在centos上安装tomcat
查看>>
第十四章 异常处理
查看>>
超链接-a标签
查看>>
转载ASP.NET MVC中Session的处理机制
查看>>
Makefile 語法簡介
查看>>
sql面试题(学生表_课程表_成绩表_教师表)
查看>>
Sublime 保存时自动转换tab成空格
查看>>
atom 插件 python语法验证linter-flake8-------填坑
查看>>