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 正则式使用心得
May 07 Python
Python操作SQLite简明教程
Jul 10 Python
Python重新引入被覆盖的自带function
Jul 16 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
基于python爬虫数据处理(详解)
Jun 10 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
javascript 回调函数详解
2014/11/11 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
Win8下python3.5.1安装教程
2020/07/29 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
《小池塘》教学反思
2014/02/28 职场文书
中职招生先进个人材料
2014/08/31 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
python 判断文件或文件夹是否存在
2022/03/18 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python
js 实现验证码输入框示例详解
2022/09/23 Javascript