我想在文档中搜索关键字,然后检查该关键字是否在另一个关键字的5行内。如果是,我想打印该行和以下50行。
在这个例子中,我正在搜索文档中的“携带”这个词,我想确保“携带”这个词在5行内“金融资产:”我的代码能够找到并打印当我只包括搜索“携带”时的行,但当我包括搜索“金融资产:”时,它没有找到任何东西(尽管我知道它在文档中)。
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)
非常感谢任何帮助。
答案 0 :(得分:2)
而不是
"Financial Assets:" in searchlines[m-5:m+5]
你需要:
any("Financial Assets:" in line2 for line2 in searchlines[m-5:m+5])
您的原始代码会查找包含“Financial Assets:”内容的行,而不是将其作为每行中的子字符串进行查找。
答案 1 :(得分:0)
表达式
"carrying" in line
在该行内的任何位置搜索字符串。但声明
"Finantial Assets:" in searchlines[m-5:m+5]
正在该子列表中搜索完全匹配(即一条完全是“Finantial Assets:”的行)。您需要将第二部分更改为
"Finantial Assets:" in " ".join(searchlines[m-5:m+5])