如何输出包含列表中任何字符串的文件中的每一行

How to output each line in a file which contains any of the strings in a list

我目前拥有的:

def FileSearch(filename, items):
    try:
        filehandle = open( filename, "r" )
        linenumber = 0
        for line in filename:
            linenumber +=1
            for item in items:
                if item in line:
                    print("%2i - %s" %( linenumber, line), end="")
    except IOError:
        print("Error file cannot be read or file does not exist")
        print("Please try again")

我正在尝试打印包含列表 'items' 中包含的任何字符串的行,前面是行号。所以它会输出这样的东西:

>>>FileSearch("textfile",["this","and","is"])
2 - this is the 2nd line
4 - hello and goodbye
5 - this is a very basic example

但是当我 运行 程序时我什至没有收到错误,什么也没有发生只是 运行 到下一行。 我将不胜感激任何帮助。 我还想知道是否有一种方法可以按数字顺序打印行,或者程序会在这里自行打印吗?

您没有得到输出,也没有得到错误,因为您不是在文件的行上迭代,而是在 filename 的字符上迭代。更改此行:

for line in filename:

给这个:

for line in filehandle: