Indexing 如何使用python在ASCII文件中查找单词

Indexing 如何使用python在ASCII文件中查找单词,indexing,find,ascii,python-2.5,Indexing,Find,Ascii,Python 2.5,我想找到一个单词及其索引,但问题是当单词在文件中出现多次时,我只能得到它的第一个位置。该文件的内容是 [制作数据:STUDENT1=AENIE:14岁,STUDENT2=JOHN:15岁,STUDENT3=KELLY:14岁,STUDENT4=JACK:16岁,STUDENT5=SNOW:16岁;设置记录:STUDENT1=GOOD,STUDENT2=,STUDENT3=BAD,STUDENT4=,STUDENT5=GOOD] 下面是我的代码 import sys,os,csv

我想找到一个单词及其索引,但问题是当单词在文件中出现多次时,我只能得到它的第一个位置。该文件的内容是

[制作数据:STUDENT1=AENIE:14岁,STUDENT2=JOHN:15岁,STUDENT3=KELLY:14岁,STUDENT4=JACK:16岁,STUDENT5=SNOW:16岁;设置记录:STUDENT1=GOOD,STUDENT2=,STUDENT3=BAD,STUDENT4=,STUDENT5=GOOD]

下面是我的代码

    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

这里,单词“STUDENT1”出现了两次,而我的代码给出了它唯一的第一个索引位置。我也想要它的第二个索引位置。类似地,一个单词可能会在文件中出现多次,因此如何找到它的全部索引位置?

使用可选的开始参数在上一次匹配后再次搜索字符串:

found = data.find("STUDENT1")
while found != -1:
    print found
    found = data.find("STUDENT1", found+1)
使用
found+len(“STUDENT1”)
而不是
found+1
,效率会稍微高一些(但不那么简洁)

或者,您可以使用:


没问题,如果我的答案有帮助,请单击我答案旁边复选标记的轮廓,接受它作为解决方案。
import re
for match in re.finditer("STUDENT1", data):
    print match.start()