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 16 Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
python多线程实现TCP服务端
Sep 03 Python
Python 获取项目根路径的代码
Sep 27 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 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 fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP内置加密函数详解
2016/11/20 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
python3.6实现学生信息管理系统
2019/02/21 Python
python实现坦克大战
2020/04/24 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
供电工程专业求职信
2014/08/09 职场文书
客户答谢会活动方案
2014/08/31 职场文书
企业委托书范本
2014/09/13 职场文书
端午节寄语2015
2015/03/23 职场文书
2015年工程部工作总结
2015/04/30 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
医院病假条怎么写
2015/08/17 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
Go获取两个时区的时间差
2022/04/20 Golang