我想在文档中搜索一个关键字,然后检查该关键字是否在另一个关键字的5行之内。如果是,我想打印该行和下面的50行。
在本例中,我在文档中搜索单词"carrying",并希望确保单词"carrying“位于单词"Financial Assets”的5行之内:当我只搜索"carrying“时,我的代码能够找到并打印这些行,但是当我包括搜索"Financial 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)任何帮助都将不胜感激。
发布于 2011-04-29 05:12:55
而不是
"Financial Assets:" in searchlines[m-5:m+5]您需要具备:
any("Financial Assets:" in line2 for line2 in searchlines[m-5:m+5])您的原始代码查找恰好包含内容"Financial Assets:“的行,而不是在每行中查找它作为子字符串。
发布于 2011-04-29 05:14:48
表达式
"carrying" in line在行内的任何位置搜索字符串。但是,该语句
"Finantial Assets:" in searchlines[m-5:m+5]正在该子列表中搜索精确匹配(即,精确为`"Finantial Assets:“的行)。您需要将这第二部分更改为类似于
"Finantial Assets:" in " ".join(searchlines[m-5:m+5])https://stackoverflow.com/questions/5825055
复制相似问题