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中操作MySQL入门实例
Feb 08 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Python while循环使用else语句代码实例
Feb 07 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
python海龟绘图之画国旗实例代码
Nov 11 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
毕业证丢失证明
2014/01/15 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
国窖1573广告词
2014/03/21 职场文书
教师读书活动总结
2014/05/07 职场文书
奶茶店创业计划书
2014/08/14 职场文书
协会周年庆活动方案
2014/08/26 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
财务人员岗位职责
2015/02/03 职场文书
2015年人事科工作总结
2015/04/28 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
MySQL慢查询优化解决问题
2022/03/17 MySQL