python在指定行前插入一行
以下脚本为,把/tmp/test.txt 的"the first line"前插入一行"the second line"
#!/usr/bin/env python
import os
import sys
import fileinput
class Insert_line(object):
def __init__(self, file, keyword, newline):
self.__file = file
self.__key = keyword
self.__newline = newline
def _get_specify_lineno(self):
i = 1
try:
f = open("%s" % self.__file)
except IOError,e:
print e[1] + " "%s"" % e.filename
sys.exit(1)
while True:
line = f.readline()
if not line: break
if "%s" % self.__key in line:
return i
break
i += 1
f.close()
def _inserted_newline_list(self):
if self._get_specify_lineno():
ls = os.linesep
f = open("%s" % self.__file)
li = f.readlines()
f.close()
li.insert(self._get_specify_lineno() - 1, self.__newline + ls )
return li
def inserted_new_file(self):
if self._inserted_newline_list():
lines = self._inserted_newline_list()
os.system("cp %s %s.bak" % (self.__file, self.__file))
f = open("%s" % self.__file, "w")
f.writelines(lines)
f.close()
else:
print "No such keyword "%s"" % self.__key
def _main():
file = Insert_line("/tmp/test.txt", "the first line", "the second line")
file.inserted_new_file()
if __name__ == "__main__":
_main()
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
