【发布时间】:2014-07-11 13:17:12
【问题描述】:
我想知道是否有一种简单的方法可以在一个巨大的文本文件中运行嵌套搜索字符串?
我有一个文本文件,其中可能包含一行文本以突出显示特定问题区域。我正在研究可能的嵌套搜索,但也是为了避免在整个文本文件上对关联的第二个字符串运行全新的搜索,而是从第一个字符串匹配点继续。
例如,如果对文本文件运行字符串搜索并找到“问题字符串”,我希望然后运行辅助搜索或最好是继续搜索(从问题行)以找到第一个匹配项第二个搜索字符串。在我的情况下,第二个搜索字符串将找到最接近的“GPS INFO”字符串,然后从文本文件中收集 GPS 信息(即下一个连续的 GPS 字符串到第一个“问题字符串”)。
我希望这是有道理的?!?基本上我想避免对文本文件进行全新的搜索,而是继续从找到第一个字符串的位置进行搜索。
我在下面有一些代码,但这只是找到第一个字符串,如果我要寻找第二个字符串,我通常会开始新的搜索,但这并不能保证我找到下一个连续的字符串。
f = open(file, "r")
searchlines = f.readlines()
searchstringsProblem = ['BIG Problem Line']
searchstringsGPSLoc = ['GPS INFO']
a = 0
tot = 0
row_num=0 # let it be current row number
while a<len(searchstringsProblem):
for i, line in enumerate(searchlines):
for word in searchstringsProblem:
if word in line:
prob = line.split()
worksheet.write(2,0,"Problem ID:", bold)
worksheet.write(2,1,prob[5])
break
a = a+1
这是 GPS INFO 行的示例以及我希望收集的以下统计信息
Key line2 GPS Info
GPS = Active
Longitude = -0.00000
Latitude = +51.47700
感谢收看。
米克
【问题讨论】:
-
您是在寻找一个匹配项还是多个匹配项? IE。如果您发现一个问题/GPS 匹配,那么您就完成了,或者您想要所有配对。
-
嗨 Bob,现在只是第一个匹配项,但我想将来我可能想要找到多个匹配项(日志文件中应该有几个问题区域),以便我可以绘制一个地图上的一系列 GPS 坐标。
-
@MikG 查看我的答案,我已添加对查找经度和纬度线的支持。