我必须编写一个函数,可以在txt文件中搜索短语,然后打印包含该短语的每一行。
def find_phrase(filename,phrase):
for line in open(filename):
if phrase in line:
print line,
这就是我现在所拥有的,它只打印第一个实例。
答案 0 :(得分:1)
我已经使用示例脚本尝试了您的代码,就像这样
#sample.py
import sys
print "testing sample"
sys.exit()
当我运行你的脚本时,
find_phrase('sample.py','sys')
打印,
import sys
sys.exit().
如果这不是您的预期输出,请分享您正在使用的文件。
答案 1 :(得分:0)
以下是pythonic方法。 with语句将安全地打开文件并在文件完成时处理关闭文件。您还可以使用“with”语句打开多个文件。 How to open a file using the open with statement
def print_found_lines(filename, phrase):
"""Print the lines in the file that contains the given phrase."""
with open(filename, "r") as file:
for line in file:
if phrase in line:
print(line.replace("\n", ""))
# end with (closes file automatically)
# end print_found_lines