所以这里的问题我有,印刷生产线在文件
我能找到的搜索词在我的文件,但在此时此刻,我只能打印出搜索词中就行了。(感谢问题)早些时候由人员发布=))。但是在搜索字词之后,我无法打印出文件末尾的所有行。这里是我到目前为止的编码: -
在此先感谢!
所以这里的问题我有,印刷生产线在文件
我能找到的搜索词在我的文件,但在此时此刻,我只能打印出搜索词中就行了。(感谢问题)早些时候由人员发布=))。但是在搜索字词之后,我无法打印出文件末尾的所有行。这里是我到目前为止的编码: -
在此先感谢!
您可以设置布尔标志,例如“found = True”; 并检查发现的== True,如果是这样,则打印该行。下面
代码:
search_term = r'\b%s\b' % search_term
found = False;
for line in open(f, 'r'):
if found==True:
print line,
elif re.match(search_term, line):
found = True;
print line,
为了解释这一点:随着布尔标志要添加一些状态到您的代码来修改其功能。你想要你的代码做什么取决于你是否在你的文件中找到了某行文本,所以表示这种二进制状态的最好方法是(我找到了这行还是找不到它?)是用布尔变量像这样,然后让代码根据变量的值做不同的事情。
另外,elif
只是else if
的缩写。
search_term_regex = re.compile(r'\b%s\b' % search_term)
found = False
for line in open(f):
if not found:
found = bool(search_term_regex.findall(line))
if found:
print line,
那么你就不重复打印线:
它可以,如果你先编译正则表达式可以大为改善。
也许检查你的同学发布的其他问题?像http://stackoverflow.com/questions/1929432或可能http://stackoverflow.com/questions/1927276? – 2009-12-19 10:23:28