详解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采用socket模拟TCP通讯的实现方法
Nov 19 Python
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
python 队列详解及实例代码
Oct 18 Python
python print 按逗号或空格分隔的方法
May 02 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 Python
Python爬虫 简单介绍一下Xpath及使用
Apr 26 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中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
Bootstrap表单布局
2016/07/19 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
python线程、进程和协程详解
2016/07/19 Python
Python全局变量用法实例分析
2016/07/19 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
如何通过python画loss曲线的方法
2019/06/26 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
2019假期福利管理制度!
2019/07/15 职场文书