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