所以這裏的問題我有,印刷生產線在文件
我能找到的搜索詞在我的文件,但在此時此刻,我只能打印出搜索詞中就行了。(感謝問題)早些時候由人員發佈=))。但是在搜索字詞之後,我無法打印出文件末尾的所有行。這裏是我到目前爲止的編碼: -
在此先感謝!
所以這裏的問題我有,印刷生產線在文件
我能找到的搜索詞在我的文件,但在此時此刻,我只能打印出搜索詞中就行了。(感謝問題)早些時候由人員發佈=))。但是在搜索字詞之後,我無法打印出文件末尾的所有行。這裏是我到目前爲止的編碼: -
在此先感謝!
您可以設置布爾標誌,例如「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