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开发windows GUI程序入门实例
Oct 23 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
fastcgi文件读取漏洞之python扫描脚本
Apr 23 Python
window下eclipse安装python插件教程
Apr 24 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
python 设置输出图像的像素大小方法
Jul 04 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
django 简单实现登录验证给你
Nov 06 Python
基于python实现把图片转换成素描
Nov 13 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中使用与Perl兼容的正则表达式
2006/11/26 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
php发送post请求函数分享
2014/03/06 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
JavaScript & jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
Python如何判断数独是否合法
2016/09/08 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
python批量图片处理简单示例
2019/08/06 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
J2EE面试题
2016/03/14 面试题
三年级科学教学反思
2014/01/29 职场文书
企业总经理职责
2014/02/02 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
施工安全协议书
2016/03/22 职场文书