详解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 相关文章推荐
windows及linux环境下永久修改pip镜像源的方法
Nov 28 Python
基于python 字符编码的理解
Sep 02 Python
python删除服务器文件代码示例
Feb 09 Python
对numpy中shape的深入理解
Jun 15 Python
在pycharm中设置显示行数的方法
Jan 16 Python
自学python的建议和周期预算
Jan 30 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
python datetime处理时间小结
Apr 16 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 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判断是否连接上网络的方法
2015/07/01 PHP
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
javascript cookies操作集合
2010/04/12 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
python和ruby,我选谁?
2017/09/13 Python
Python对象与引用的介绍
2019/01/24 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
班级标语大全
2014/06/21 职场文书
2014年团支部工作总结
2014/11/17 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书