python删除特定文字下面的所有内容并保存

Python014

python删除特定文字下面的所有内容并保存,第1张

初学就要多查找相关资料,然后自己尝试写代码,在改错中进步:

思路:

先建立一个临时文件(用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)