详解Python文件修改的两种方式


Posted in Python onAugust 22, 2019

文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式。

一、方式一

将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)。

import os

with open('37r.txt') as fr, \
    open('37r_swap.txt', 'w') as fw:
  data = fr.read() # 全部读入内存,如果文件很大,会很卡
  data = data.replace('tank', 'tankSB') # 在内存中完成修改

  fw.write(data) # 新文件一次性写入原文件内容

# 删除原文件
os.remove('37r.txt')
# 重命名新文件名为原文件名
os.rename('37r_swap.txt', '37r.txt')
print('done...')
done...

二、方式二

将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件。

import os

with open('37r.txt') as fr,\
    open('37r_swap.txt', 'w') as fw:
  # 循环读取文件内容,逐行修改
  for line in fr:
    line = line.replace('jason', 'jasonSB')
    # 新文件写入原文件修改后内容
    fw.write(line)

os.remove('37r.txt')
os.rename('37r_swap.txt', '37r.txt')
print('done...')
done...

总而言之,修改文件内容的思路为:以读的方式打开原文件,以写的方式打开一个新的文件,把原文件的内容进行修改,然后写入新文件,之后利用os模块的方法,把原文件删除,重命名新文件为原文件名,达到以假乱真的目的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python连接mysql调用存储过程示例
Mar 05 Python
python概率计算器实例分析
Mar 25 Python
Python3中的json模块使用详解
May 05 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
python循环输出三角形图案的例子
Nov 22 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
Python中的特殊方法以及应用详解
Sep 20 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 #Python
python支付宝支付示例详解
Aug 22 #Python
关于python3中setup.py小概念解析
Aug 22 #Python
python3 requests库文件上传与下载实现详解
Aug 22 #Python
python3使用print打印带颜色的字符串代码实例
Aug 22 #Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 #Python
浅谈Python 递归算法指归
Aug 22 #Python
You might like
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
javascript常用函数(2)
2015/11/05 Javascript
前端微信支付js代码
2016/07/25 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
Django 解决由save方法引发的错误
2020/05/21 Python
python如何变换环境
2020/07/21 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
机电工程专业应届生求职信
2013/10/03 职场文书
大学生物业管理求职信
2013/10/24 职场文书
新春文艺演出主持词
2014/03/27 职场文书
争先创优演讲稿
2014/09/15 职场文书
国庆节标语大全
2014/10/08 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
画展邀请函
2015/01/31 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
maven依赖的version声明控制方式
2022/01/18 Java/Android