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函数局部变量用法实例分析
Aug 04 Python
python字符串连接方法分析
Apr 12 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
python中字符串的操作方法大全
Jun 03 Python
python与caffe改变通道顺序的方法
Aug 04 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
python获取地震信息 微信实时推送
Jun 18 Python
对python 调用类属性的方法详解
Jul 02 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
python实现画图工具
Aug 27 Python
Python中json.dumps()函数的使用解析
May 17 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 存储文本换行实现方法
2010/01/05 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
Python 数据处理库 pandas进阶教程
2018/04/21 Python
python学生信息管理系统(完整版)
2020/04/05 Python
Python 监测文件是否更新的方法
2019/06/10 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
Python类如何定义私有变量
2020/02/03 Python
Python的logging模块基本用法
2020/12/24 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
《灯光》教学反思
2014/02/08 职场文书
品牌推广策划方案
2014/05/28 职场文书
舞蹈专业求职信
2014/06/13 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
营业用房租赁协议书
2014/11/26 职场文书
文员岗位职责范本
2015/04/16 职场文书
nginx之queue的具体使用
2022/06/28 Servers
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技