文件中特定行插入内容的python脚本

原文件:

[root@test ~]# cat a.txt

line1

line2

line3

line4

line5

line6

line7

line8

脚本代码:

#!/usr/bin/env python
# -*- coding: utf-8
import fileinput

def file_insert(fname,linenos=[],strings=[]):
    lineno = 0
    i = 0
    for line in fileinput.input(fname,inplace=1):
        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

if __name__ == '__main__':
    file='a.txt'
    file_insert(file,[2,4,6],['insert2','insert4']) #往文件的第2、4、6行插入内容,内容不足的用空行补上。

执行脚本后的文件:

[root@test ~]# cat a.txt

line1

insert2

line2

line3

insert4

line4

line5

line6

line7

line8