python文件特定行插入和替换实例详解


Posted in Python onJuly 12, 2017

python文件特定行插入和替换实例详解

python提供了read,write,但和很多语言类似似乎没有提供insert。当然真要提供的话,肯定是可以实现的,但可能引入insert会带来很多其他问题,比如在插入过程中crash掉可能会导致后面的内容没来得及写回。

不过用fileinput可以简单实现在特定行插入的需求:

Python代码 

import os 
import fileinput 
def file_insert(fname,linenos=[],strings=[]): 
  """ 
  Insert several strings to lines with linenos repectively. 
 
  The elements in linenos must be in increasing order and len(strings) 
  must be equal to or less than len(linenos). 
 
  The extra lines ( if len(linenos)> len(strings)) will be inserted 
  with blank line. 
  """ 
  if os.path.exists(fname): 
    lineno = 0 
    i = 0 
    for line in fileinput.input(fname,inplace=1): 
      # inplace must be set to 1 
      # it will redirect stdout to the input file 
      lineno += 1 
      line = line.strip() 
      if i<len(linenos) and linenos[i]==lineno: 
        if i>=len(strings): 
          print "\n",line 
        else: 
          print strings[i] 
          print line 
        i += 1 
      else: 
        print line 
file_insert('a.txt',[1,4,5],['insert1','insert4'])

 其中需要注意的是 fileinput.input的inplace必须要设为1,以便让stdout被重定向到输入文件里。

当然用fileinput.input可以不仅用来在某行插入,还可以在特定模式的行(比如以salary:结尾的行)插入或替换,实现一个小型的sed。

以上就是python文件特定行插入和替换的简单实例,如果大家有不明白或者好的建议请到留言区或者社区提问和交流,使用感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python命令行参数sys.argv使用示例
Jan 28 Python
Python在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
Dec 08 Python
Python正则表达式经典入门教程
May 22 Python
Python之文字转图片方法
May 10 Python
如何用python整理附件
May 13 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Python切图九宫格的实现方法
Oct 10 Python
Python如何用filter函数筛选数据
Mar 05 Python
python随机打印成绩排名表
Jun 23 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 #Python
python3之微信文章爬虫实例讲解
Jul 12 #Python
python脚本替换指定行实现步骤
Jul 11 #Python
Python书单 不将就
Jul 11 #Python
Python编写一个闹钟功能
Jul 11 #Python
python自定义异常实例详解
Jul 11 #Python
详解python中的文件与目录操作
Jul 11 #Python
You might like
网络资源
2006/10/09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
Laravel 队列使用的实现
2019/01/08 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
Python线程的两种编程方式
2015/04/14 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python3实现购物车功能
2018/04/18 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
财务会计专业求职信
2014/06/09 职场文书
学校班班通实施方案
2014/06/11 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL