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 03 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
Python中函数参数匹配模型详解
Jun 09 Python
Python argparse模块应用实例解析
Nov 15 Python
Python socket聊天脚本代码实例
Jan 02 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
jupyter 添加不同内核的操作
Feb 06 Python
python 制作网站小说下载器
Feb 20 Python
python之json文件转xml文件案例讲解
Aug 07 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 XML备份Mysql数据库
2009/05/27 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
php日期操作技巧小结
2016/06/25 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
jQuery cdn使用介绍
2013/05/08 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
浅谈python常用程序算法
2019/03/22 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python实现猜单词游戏
2020/05/22 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
银行员工职业规划范文
2014/01/21 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
村委会换届选举方案
2014/05/03 职场文书
奔腾年代观后感
2015/06/09 职场文书
雷锋电影观后感
2015/06/10 职场文书
农村老人去世追悼词
2015/06/23 职场文书
申请吧主发表的感言
2015/08/03 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript