详解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中使用 Selenium 实现网页截图实例
Jul 18 Python
Python实现的石头剪子布代码分享
Aug 22 Python
Python实现过滤单个Android程序日志脚本分享
Jan 16 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
Flask 让jsonify返回的json串支持中文显示的方法
Mar 26 Python
Python中一些不为人知的基础技巧总结
May 19 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
Python如何绘制日历图和热力图
Aug 07 Python
Python中的datetime包与time包包和模块详情
Feb 28 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
优秀中专生推荐信
2013/11/17 职场文书
基层工作经历证明
2014/01/13 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
乡镇干部十八大感言
2014/02/17 职场文书
主题实践活动总结
2014/05/08 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
村党建工作汇报材料
2014/11/02 职场文书
交通事故和解协议书
2015/01/27 职场文书
课程设计感想范文
2015/08/11 职场文书