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