开发者

how to find a word in ASCII file using python

I want to find a word and its index but the problem is I am only getting its first position while 开发者_如何学JAVAthe word appear more than one time in file. The file's content is,

[MAKE DATA:STUDENT1=AENIE:AGE14,STUDENT2=JOHN:AGE15,STUDENT3=KELLY:AGE14,STUDENT4=JACK:AGE16,STUDENT5=SNOW:AGE16;SET RECORD:STUDENT1=GOOD,STUDENT2=,STUDENT3=BAD,STTUDENT4=,STUDENT5=GOOD]

following is my code,

    import sys,os,csv
    x = str(raw_input("Enter file name :")) + '.ASCII'
    fp = open(x,'r')
    data = fp.read()
    fp.close()
    found = data.find("STUDENT1")
    print found

here the word "STUDENT1" appear two time while my code gives its only 1st index position. I want its second index position too. Similarly a word may appear several times in file so how can I find its all index position?


Use the optional start parameter to str.find() to search the string again starting after the previous match:

found = data.find("STUDENT1")
while found != -1:
    print found
    found = data.find("STUDENT1", found+1)

It would be slightly more efficient (but less concise) to use found+len("STUDENT1") instead of found+1.

Alternatively you could use the re.finditer():

import re
for match in re.finditer("STUDENT1", data):
    print match.start()
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜