思路:
先建立一个临时文件(用open即可),
然后顺序读取txt文件的每一行(open,readline,用 while循环),
判断读取的那一行是否是abcdefg,不是就保存到临时文件,是的话就结束循环。
关闭文件,然后可以把原来的txt文件删除,把临时文件更名为txt。(import os,用os操作)
代码基于python 2.6。功能已写成函数,用的简单语法,很好懂。新文件文件名自动附加"_back"。不懂再问。
import os, time
def readKeys(fileName):
keys = []
f = open(fileName, "r")
while True:
line = f.readline()
if not line:
break
key = line.strip()
if key: keys.append(key)
f.close()
return keys
def processKeys(editFileName, backFileName, keys):
f = open(editFileName, "r")
lines = f.readlines()
f.close()
editLines = []
backLines = []
for line in lines:
found = False
for key in keys:
if line.startswith(key):
backLines.append(line)
found = True
break
if not found:
editLines.append(line)
if backLines:
f = open(editFileName, "w")
f.writelines(editLines)
f.close()
f = open(backFileName, "w")
f.writelines(backLines)
print 'modify',editFileName,'save',backFileName
if __name__ == '__main__':
keys = readKeys("0.txt")
fileList = ["1.txt", "2.txt", "3.txt", "4.txt", "5.txt"]
while True:
for fileName in fileList:
base, ext = os.path.splitext(fileName)
processKeys(fileName, base + "_back" + ext, keys)
print 'sleep 30 seconds'
time.sleep(30)