我正在使用Python从网络抓取的数据中搜索大型无格式文本文件中以特定术语开头的段落。
我可以使用下面的代码获取位置和字符串,但是对于“ value
”的每个实例,它都会返回“ value
”的每个实例
for file_name in file_list: #going through multiple docs
with open(file_name, 'r') as text:
search = mmap.mmap(text.fileno(), 0, access=mmap.ACCESS_READ)
for match in re.finditer(br'(\bvalue)', search, re.IGNORECASE): #looking for the word "value"
print(file_name + ',')
m = re.finditer(br'(\bvalue)', search, re.IGNORECASE)
locs = [(m.start(0),m.end(0)+100) for m in re.finditer(br'(\bvalue)', search, re.IGNORECASE)] #+100 returns additional text after searched word
for item in locs:
print([(item[0]),(item[1])])
print(',')
print(search[(item[0]):(item[1])])
print('\n')
else:
print(file_name + ',' + '[null, null]' + ',' + 'false')
print('\n')
当我尝试其他循环技术时,似乎破坏了([(item[0]),(item[1])])
调用工作的能力。相反,我在“ value
”的每个实例中都重复了“ value
”的每个实例,因此有很多重复的结果。
我想要的最终结果是:
谢谢您的帮助!