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

时间:2016-01-18 12:10:57

标签: python exception file-io io filehandle

到目前为止我所拥有的:

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")

我试图打印以亚麻布为单位的行,其中包含列表中包含的任何字符串'项目'。所以它会输出这样的东西:

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

但是当我运行该程序时,我甚至没有收到错误,没有任何反应只会运行到下一行。 我很感激任何帮助。 我还想知道是否有一种方法可以按数字顺序打印线条,还是程序会在这里自行完成?

1 个答案:

答案 0 :(得分:4)

您没有获得输出,也没有输出错误,因为您不是在文件的行上进行迭代,而是在MainWindow的字符上进行迭代。改变这一行:

filename

对此:

for line in filename: