详解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生成器(Generator)详解
Apr 13 Python
Python下的twisted框架入门指引
Apr 15 Python
python文件的md5加密方法
Apr 06 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
Jun 13 Python
获取python的list中含有重复值的index方法
Jun 27 Python
对pandas中Series的map函数详解
Jul 25 Python
Python Numpy库安装与基本操作示例
Jan 08 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 Python
numpy库reshape用法详解
Apr 19 Python
django ORM之values和annotate使用详解
May 19 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
JS实现自定义弹窗功能
2018/08/08 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
python Django框架实现自定义表单提交
2016/03/25 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
Python批量查询域名是否被注册过
2017/06/21 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
python try...finally...的实现方法
2020/11/25 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
Shell编程面试题
2016/05/29 面试题
《美丽的小路》教学反思
2014/02/26 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
法律讲堂观后感
2015/06/11 职场文书
赢在执行观后感
2015/06/16 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
Java版 简易五子棋小游戏
2022/05/04 Java/Android