我正在尝试使用python来读取文本文件并在文件中搜索某个字符串,如下所示
with open("controlDict","r") as myfile:
file=myfile.read()
IndexFirst=file.find('fields')
然而,我发现它只给了我第一个'字段的索引。在文件中,但我需要找到所有索引,其中'字段'出现就行了。
我在网上进行了一些研究并在下面尝试过
Index=[i for i, val in enumerate(file) if val=='fields']
但它不起作用并返回一个空列表。
我不知道为什么,有人有什么建议吗?
答案 0 :(得分:1)
打开文件,遍历每一行并检查它是否包含'字段'如果是,打印行
with open("controlDict", "r") as myfile:
for line in myfile.readlines():
if 'fields' in line:
print(line)
如果你只需要你可以使用的行索引
with open("controlDict", "r") as myfile:
for index, line in enumerate(myfile.readlines()):
if 'fields' in line:
print(index)
答案 1 :(得分:0)
如果您想要文件中出现单词字段的确切索引,您可以执行以下操作:
str = "fields"
indices = []
i = 0
while i >= 0:
i = file.find(str,i)
indices.append(i)
如果您想要线索引,可以使用AK47的答案。
答案 2 :(得分:0)
如果你想要单词的索引
def all_occurences(file, str):
initial = 0
while True:
initial = file.find(str, initial)
if initial == -1: return
yield initial
initial += len(str)
print(list(all_occurences(open("controlDict.txt").read(), "fields")))
您可以使用此代码
答案 3 :(得分:0)
可以使用re
模块和列表理解:
import re
with open('controlDict.txt', 'r') as myfile:
file = myfile.read()
indices = [match.start() for match in re.finditer('fields', file)]