我想在文档中搜索关键字,然后检查该关键字是否在另一个关键字的 5 行范围内。如果是,我想打印该行和接下来的 50 行。
在此示例中,我正在文档中搜索“carrying”一词,并且我想确保“carrying”一词位于“Financial Assets:”一词的 5 行之内,我的代码能够查找并打印当我只包含对“携带”的搜索时,但当我包含对“金融 Assets :”的搜索时,它没有找到任何内容(即使我知道它在文档中)。
import urllib2
data = []
html = urllib2.urlopen("ftp://ftp.sec.gov/edgar/data/1001627/0000950116-97-001247.txt")
searchlines = html.readlines()
for m, line in enumerate(searchlines):
line = line.lower()
if "carrying" in line and "Financial Assets:" in searchlines[m-5:m+5]:
for l in searchlines[m-5:m+50]:
data.append(l)
print ''.join(data)
任何帮助将不胜感激。
最佳答案
而不是
"Financial Assets:" in searchlines[m-5:m+5]
您需要:
any("Financial Assets:" in line2 for line2 in searchlines[m-5:m+5])
您的原始代码查找恰好包含内容“Financial Assets:”的行,而不是在每行中将其作为子字符串查找。
关于python - 如何在 Python 文档中搜索关键字,然后在原始关键字的一定行数内搜索后续关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825055/