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中for循环的使用
Apr 14 Python
python学习之编写查询ip程序
Feb 27 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 24 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
Python实现拼音转换
Jun 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 clearstatcache()函数详解
2010/03/02 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
js时间转换毫秒的实例代码
2019/08/21 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
Django中Middleware中的函数详解
2019/07/18 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Python如何根据时间序列数据作图
2020/05/12 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
临床护士自荐信
2014/01/31 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
应急管理培训方案
2014/06/12 职场文书
花坛标语大全
2014/06/30 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
课外访万家心得体会
2014/09/03 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
管理人员岗位职责
2015/02/14 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
企业催款函范本
2015/06/24 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书