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函数学习笔记
Oct 07 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
python使用Tesseract库识别验证
Mar 21 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
python ubplot使用方法解析
Jan 10 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
PyQt5实现登录页面
May 30 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的计数器程序
2006/10/09 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
js实现自定义路由
2017/02/04 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
JS随机密码生成算法
2019/09/23 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
Python语言描述KNN算法与Kd树
2017/12/13 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
《桂林山水》教学反思
2014/02/08 职场文书
推荐信格式要求
2014/05/09 职场文书
入职担保书范文
2014/05/21 职场文书
士兵突击观后感
2015/06/16 职场文书
导游词之永泰公主墓
2019/12/04 职场文书