1

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

[制作数据:学生 1=AENIE:14 岁,学生 2=约翰:15 岁,学生 3=凯莉:14 岁,学生 4=杰克:16 岁,学生 5=雪:16 岁;设置记录:学生 1=好,学生 2=,学生 3=坏,学生 4= ,学生5=好]

以下是我的代码,

    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”这个词出现了两次,而我的代码只给出了它的第一个索引位置。我也想要它的第二个索引位置。同样,一个单词可能会在文件中出现多次,那么我怎样才能找到它的所有索引位置?

4

1 回答 1

0

使用可选的 start 参数str.find()在上一个匹配之后再次开始搜索字符串:

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

使用found+len("STUDENT1")而不是found+1.

或者,您可以使用re.finditer()

import re
for match in re.finditer("STUDENT1", data):
    print match.start()
于 2011-09-14T18:57:59.180 回答