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 13 Python
Python使用htpasswd实现基本认证授权的例子
Jun 10 Python
Python生成验证码实例
Aug 21 Python
python常规方法实现数组的全排列
Mar 17 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
python将txt文档每行内容循环插入数据库的方法
Dec 28 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
python绘制规则网络图形实例
Dec 09 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
python多线程实现同时执行两个while循环的操作
May 02 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
JAVA/JSP学习系列之七
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
Python处理Excel文件实例代码
2017/06/20 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python实现黑客字幕雨效果
2018/06/21 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
大学生旷课检讨书
2014/01/22 职场文书
优秀员工推荐信
2014/05/10 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
您对思维方式了解多少?
2019/12/09 职场文书