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中的greenlet包实现并发编程的入门教程
Apr 16 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
Python threading的使用方法解析
Aug 28 Python
基于torch.where和布尔索引的速度比较
Jan 02 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Python为何不支持switch语句原理详解
Oct 21 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
深入理解Pytorch微调torchvision模型
Nov 11 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
function.inc.php超越php
2006/12/09 PHP
php中的数组操作函数整理
2008/08/18 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
浅谈js中的bind
2019/03/18 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
python模拟表单提交登录图书馆
2018/04/27 Python
TensorFlow Session会话控制&Variable变量详解
2018/07/30 Python
python实现小球弹跳效果
2019/05/10 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
实习老师个人总结的自我评价
2013/09/28 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
索尼ICF-36收音机评测
2022/04/30 无线电