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使用filetype精确判断文件类型
Jul 02 Python
Python常见字典内建函数用法示例
May 14 Python
python tornado微信开发入门代码
Aug 24 Python
windows下numpy下载与安装图文教程
Apr 02 Python
Python字符串的常见操作实例小结
Apr 08 Python
Python二维码生成识别实例详解
Jul 16 Python
python实现宿舍管理系统
Nov 22 Python
python数据类型可变不可变知识点总结
Mar 06 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
Python pip install之SSL异常处理操作
Sep 03 Python
如何用python实现一个HTTP连接池
Jan 14 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 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
php define的第二个参数使用方法
2013/11/04 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
Javascript常考语句107条收集
2010/03/09 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
pycharm远程调试openstack的图文教程
2017/11/21 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python移位运算的实现
2019/07/15 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Python切图九宫格的实现方法
2019/10/10 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
重构Python代码的六个实例
2020/11/25 Python
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
编程输出如下图形
2013/11/24 面试题
租房协议书怎么写
2014/04/10 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
三年级作文之小小梦想
2019/12/06 职场文书