详解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和Scikit-Learn的机器学习探索
Oct 16 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
Python发展史及网络爬虫
Jun 19 Python
Python实现Selenium自动化Page模式
Jul 14 Python
Python 继承,重写,super()调用父类方法操作示例
Sep 29 Python
python中get和post有什么区别
Jun 19 Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 Python
python unichr函数知识点总结
Dec 16 Python
Jupyter Notebook 远程访问配置详解
Jan 11 Python
在pyCharm中下载第三方库的方法
Apr 18 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
三种php连接access数据库方法
2013/11/11 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
Python处理中文标点符号大集合
2018/05/14 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
儿科主治医生个人求职信
2013/09/23 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
新学期决心书
2014/03/11 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书