详解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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
Python学习小技巧总结
Jun 10 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
利用Python实现kNN算法的代码
Aug 16 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
python yield关键词案例测试
Oct 15 Python
Python argparse模块应用实例解析
Nov 15 Python
Python datetime 格式化 明天,昨天实例
Mar 02 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 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
新浪新闻小偷
2006/10/09 PHP
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
快速配置PHPMyAdmin方法
2008/06/05 PHP
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
Python实现简单文本字符串处理的方法
2018/01/22 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
高职教师岗位职责
2013/12/24 职场文书
公司投资建议书
2014/05/16 职场文书
责任书格式范文
2014/07/28 职场文书
市场营销工作计划书
2014/09/15 职场文书
音乐教师个人总结
2015/02/06 职场文书
公开致歉信
2019/06/24 职场文书
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android