详解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操作ssh实现服务器日志下载的方法
Jun 03 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
对numpy中布尔型数组的处理方法详解
Apr 17 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
python制作一个简单的gui 数据库查询界面
Nov 19 Python
python 实现图片裁剪小工具
Feb 02 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
如何使用PHP中的字符串函数
2006/10/09 PHP
PHP4与PHP5的时间格式问题
2008/02/17 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python dlib人脸识别代码实例
2019/04/04 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
Python正则表达式学习小例子
2020/03/03 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
音乐专业应届生教师求职信
2013/11/04 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
PHP策略模式写法
2021/04/01 PHP
python requests模块的使用示例
2021/04/07 Python
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python
Nginx速查手册及常见问题
2022/04/07 Servers