python基础_文件操作实现全文或单行替换的方法


Posted in Python onSeptember 04, 2017

python修改文件时,使用w模式会将原本的文件清空/覆盖。可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开。

1、替换文本中的taste 为 tasting

Yesterday when I was young
昨日当我年少轻狂
The taste of life was sweet
生命的滋味是甜的
As rain upon my tongue
#将文件读取到内存中
with open("./fileread.txt","r",encoding="utf-8") as f:
 lines = f.readlines() 
#写的方式打开文件
with open("./fileread.txt","w",encoding="utf-8") as f_w:
 for line in lines:
  if "taste" in line:
   #替换
   line = line.replace("taste","tasting")
  f_w.write(line)

2、全文中搜索替换或者单行替换

#文本内容
Yesterday when I was young
昨日当我年少轻狂
The taste of life was sweet
生命的滋味是甜的
As rain upon my tongue
taste
taste
taste
taste
#定义一个函数,带有4个参数
#x 表示要更新的文件名称
#y 表示要被替换的内容
#z 表示 替换后的内容
#s 默认参数为 1 表示只替换第一个匹配到的字符串
# 如果参数为 s = 'g' 则表示全文替换
def string_switch(x,y,z,s=1):
 with open(x, "r", encoding="utf-8") as f:
  #readlines以列表的形式将文件读出
  lines = f.readlines()
 
 with open(x, "w", encoding="utf-8") as f_w:
  #定义一个数字,用来记录在读取文件时在列表中的位置
  n = 0
  #默认选项,只替换第一次匹配到的行中的字符串
  if s == 1:
   for line in lines:
    if y in line:
     line = line.replace(y,z)
     f_w.write(line)
     n += 1
     break
    f_w.write(line)
    n += 1
   #将剩余的文本内容继续输出
   for i in range(n,len(lines)):
    f_w.write(lines[i])
  #全局匹配替换
  elif s == 'g':
   for line in lines:
    if y in line:
     line = line.replace(y,z)
    f_w.write(line)

测试

1)默认参数 1,只替换匹配到的第一行

string_switch("fileread.txt","taste","tasting")
 
#结果
Yesterday when I was young
昨日当我年少轻狂
The tasting of life was sweet
生命的滋味是甜的
As rain upon my tongue
taste
taste
taste
taste

2)全局替换

string_switch("fileread.txt","taste","tasting","g")
 
#结果
Yesterday when I was young
昨日当我年少轻狂
The tasting of life was sweet
生命的滋味是甜的
As rain upon my tongue
tasting
tasting
tasting
tasting

以上这篇python基础_文件操作实现全文或单行替换的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python简单程序读取串口信息的方法
Mar 13 Python
python threading模块操作多线程介绍
Apr 08 Python
Python的消息队列包SnakeMQ使用初探
Jun 29 Python
python模块之re正则表达式详解
Feb 03 Python
python查询mysql,返回json的实例
Mar 26 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
Django中自定义查询对象的具体使用
Oct 13 Python
django 多数据库及分库实现方式
Apr 01 Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 Python
python 生成器协程运算实例
Sep 04 #Python
python 文件操作删除某行的实例
Sep 04 #Python
Django数据库操作的实例(增删改查)
Sep 04 #Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 #Python
Python2实现的LED大数字显示效果示例
Sep 04 #Python
Python2随机数列生成器简单实例
Sep 04 #Python
开源软件包和环境管理系统Anaconda的安装使用
Sep 04 #Python
You might like
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
JS动画效果代码3
2008/04/03 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
Python中自定义函数的教程
2015/04/27 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
浅谈python可视化包Bokeh
2018/02/07 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
How to spawning asynchronous work in J2EE
2016/08/29 面试题
纺织工程专业个人求职信范文
2014/01/27 职场文书
公司节能减排方案
2014/05/16 职场文书
本科生自荐信
2014/06/18 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
大学团日活动总结书
2015/05/11 职场文书
代理词怎么写
2015/05/25 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
keepalived + nginx 实现高可用方案
2022/12/24 Servers