如何从包含特定短语的文本文件中打印每一行

时间:2014-04-02 10:29:23

标签: python string file-io

我必须编写一个函数,可以在txt文件中搜索短语,然后打印包含该短语的每一行。

def find_phrase(filename,phrase):
    for line in open(filename):
        if phrase in line: 
            print line,

这就是我现在所拥有的,它只打印第一个实例。

2 个答案:

答案 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