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 基础学习教程
Feb 08 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
在Python的Django框架中包装视图函数
Jul 20 Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
Django 通过JS实现ajax过程详解
Jul 30 Python
Python3 翻转二叉树的实现
Sep 30 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
python 实现两个npy档案合并
Jul 01 Python
浅谈Python数学建模之整数规划
Jun 23 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学习教程之第2天
2008/06/15 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
jquery中动态效果小结
2010/12/16 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
Python 命令行参数sys.argv
2008/09/06 Python
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
劳动竞赛活动方案
2014/02/20 职场文书
继承公证书
2014/04/09 职场文书
机关作风建设工作总结
2014/10/23 职场文书
本溪关门山导游词
2015/02/09 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang