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编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
在Django中进行用户注册和邮箱验证的方法
May 09 Python
详解django中使用定时任务的方法
Sep 27 Python
详解Python中的内建函数,可迭代对象,迭代器
Apr 29 Python
Python实现使用request模块下载图片demo示例
May 24 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
python开头的coding设置方法
Aug 08 Python
pyinstaller还原python代码过程图解
Jan 08 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
一文读懂Python 枚举
Aug 25 Python
Python基础之数据结构详解
Apr 28 Python
使用pipenv管理python虚拟环境的全过程
Sep 25 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
第十五节--Zend引擎的发展
2006/11/16 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
Python常用的日期时间处理方法示例
2015/02/08 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python中字符串的格式化方法小结
2016/05/03 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
python3中确保枚举值代码分析
2020/12/02 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
材料加工工程求职信
2014/02/19 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
个人政风行风自查自纠报告
2014/10/21 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python