详解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标准日志模块logging的使用方法
Nov 01 Python
浅析Python中的多重继承
Apr 28 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
Aug 05 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
Django实现分页显示效果
Oct 31 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 Python
Python使用Selenium实现淘宝抢单的流程分析
Jun 23 Python
用Python将库打包发布到pypi
Apr 13 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 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
php4的彩蛋
2006/10/09 PHP
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
用实例分析Python中method的参数传递过程
2015/04/02 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
医药营销个人求职信
2014/04/12 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
干部作风建设心得体会
2014/10/22 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
学生个人评语大全
2015/01/04 职场文书
写给医生的感谢信
2015/01/22 职场文书
技术支持岗位职责
2015/02/13 职场文书
办公室个人总结
2015/02/28 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
文明旅游倡议书
2015/04/28 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
Javascript的promise,async和await的区别详解
2022/03/24 Javascript