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脚本将Bing的每日图片作为桌面的教程
May 04 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
python 数据清洗之数据合并、转换、过滤、排序
Feb 12 Python
python中logging库的使用总结
Oct 18 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
对python中if语句的真假判断实例详解
Feb 18 Python
Python常用模块之requests模块用法分析
May 15 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
Python OrderedDict的使用案例解析
Oct 25 Python
python super用法及原理详解
Jan 20 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
Python中zipfile压缩包模块的使用
May 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设计聊天室步步通
2006/10/09 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
动态加载js的几种方法
2006/10/23 Javascript
Javascript的闭包
2009/12/31 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python yield 使用浅析
2015/05/28 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
浅析python实现动态规划背包问题
2020/12/31 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
毕业生自荐书模版
2014/01/04 职场文书
建筑安全生产责任书
2014/07/22 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
迟到检讨书
2015/01/26 职场文书
建党伟业电影观后感
2015/06/01 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书