python 文本查找

Python09

python 文本查找,第1张

这个很简单哈,我用java写过类似的,python下没写过,但思路都是一样的,我说一下思路,供你参考一下:

【笨方法】”字符串截取“

基本字符串1=”abc123“

基本字符串2=”345aaa“

例如:目标字符串为:Today

is

a

good

day

aaa123目标字符串345aaa

那么:

获得基本字符串1的长度:len1=len(基本字符串1)

获得基本字符串2的长度:len2=len(基本字符串2)

---------------------------------------------------------------------

以len1长度开始截取目标字符串,以上面的例子为例,截取出来的应该为:

Today_

oday_i

day_is

ay_is_

y_is_a

等...........................

..............

当然这些都是一个循环就可以搞定,然后在这个循环里,对每次接触的字符串进行比对,如果找到与目标字符串形同的,则记下”索引“

开始进行下一步处理:截取本句剩下的部分,找到”基本字符串2“,然后记下其开始”索引“,那么两个”索引“之间的东东就是你想要的那个”目标字符串“,之后你想用它干什么都行...........

【超简单的方法】

会”正则表达式“吗?会的话,直接用正则吧,几句就出来了..........

python 3.3 代码

import sys

reader = open('scores.txt')

line = reader.readline()#读取第一行数据

scores = []#放 分数值 的数值

stander = 0#及格人数

while line != '' and line != None:#循环读取数据行

    tempScore = line.split(' ')[1].replace('\n','')#将姓名和成绩分开,并取分数

    scores.append(tempScore)#将得到的分数添加到数组中

    if float(tempScore) >= 60:#记录大于60分的成绩

        stander += 1

    line = reader.readline()

reader.close()

print(scores)

print(stander)

txtfile=open(r'test.txt',"r")

newtxtfile=open(r'new.txt',"w")

linelist=[]

for line in txtfile:

    linelist.append(line)

    if len(linelist)==4:

        if not linelist[1].startswith(r'aaa'):

            newtxtfile.writelines(linelist)

        linelist=[]

if len(linelist)>1:

    if not linelist[1].startswith(r'aaa'):

            newtxtfile.writelines(linelist)

elif len(linelist)==1:

    newtxtfile.writelines(linelist)

txtfile.close()

newtxtfile.close()

读取文件test.txt,将每四行中第二行以aaa开始的去除,写入新文件new.txt中