python文件特定行插入和替换实例详解
作者:ryanstd 发布时间:2022-05-01 11:16:27
标签:python,文件插入,替换
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。
来源:http://ryanstd.iteye.com/blog/480781


猜你喜欢
- 1、列表页面:this.$router.push({ name: 'userTemplate', params: { rep
- 本文实例讲述了python实现控制电脑鼠标和键盘,登录QQ的方法。分享给大家供大家参考,具体如下:import osfrom pynput.
- 一、所需工具**Python版本:**3.5.4(64bit)二、相关模块opencv_python模块sklearn模块numpy模块dl
- 跨域当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时,那说明跨域了。跨域是因为浏览器的同源策略所导致,
- 以发布目录为例:<OBJECT ID="agobjOraSession" RUNAT=&quo
- 一直以来都是用python脚本,执行的时候就是在终端直接命令执行,或者直接输入代码执行,最近为了方便他人使用,想做个界面,可以通过里面的控件
- view()函数是在torch.Tensor.view()下的一个函数,可以有tensor调用,也可以有variable调用。其作用在于返回
- 如果你在爬虫过程中有遇到“您的请求太过频繁,请稍后再试”,或者说代码完全正确,可是爬虫过程中突然就访问不了,那么恭喜你,你的爬虫被对方识破了
- 本文实例讲述了Python smallseg分词用法。分享给大家供大家参考。具体分析如下:#encoding=utf-8 #import p
- Bootstrap 的响应式 CSS 能够自适应于台式机、平板电脑和手机下面是手机端显示的样式代码如下:1.test.php<html
- 问题:我在 Vue 中有一个 form 表单,用于上传博客帖子,它有标题、正文、描述、片段和图片等范围。所有的一切都是必需的。我在 Expr
- 插件编写的基本方法推荐大家先看看官方给出的插件使用和开发方法https://vuejs.bootcss.com/guide/plugins.
- objectobject 是 Python 为所有对象提供的父类,默认提供一些内置的属性、方法;可以使用 dir 方法查看新式类以 obje
- 使用Requests测试带签名的接口部分业务为了安全需要,需要对接口请求数据做签名校验,一般制定一下规则1、业务方接入系统,需申请业务ID以
- resources文件下面有一个lang文件夹下面有一个en文件夹,这里就是后面要使用到的存放语言的语言包的地方了。下面设置app.php里
- Golang精编100题能力模型(测试)初级primary:熟悉基本语法,能够看懂代码的意图;在他人指导下能够完成用户故事的开发,编写的代码
- python 3.4.3 的版本中已经没有cmp函数,被operator模块代替,在交互模式下使用时,需要导入模块。在没有导入模块情况下,会
- 一、多层前向神经网络多层前向神经网络由三部分组成:输出层、隐藏层、输出层,每层由单元组成;输入层由训练集的实例特征向量传入,经过连接结点的权
- 内容摘要:Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行
- 一:手写数字模型构建与保存1 加载数据集# 1加载数据digits_data = load_digits()可以先简单查看下 手写数字集,如