1
def fun(EACH) : 
   list1 = []
   EACH = str(EACH)
    for all in a:  # contains names of different checks     
        for files in b :
              for line in open(str(files)) : 
                 if EACH in line :
                           print files
                           break

a是一个包含许多文件的目录。我将这些文件存储在 list 中b。我想提取名称在EACH

例如,我想在其内容中打开作为字符串“apple”的文件。这个苹果词是通过参数传递的。

问题是我不明白如何读取该值并在if条件中使用相同的字符串。

4

2 回答 2

0

您可以使用以下代码:

def grepFileForLines( self, fileName = "", keepLinesWith = "" ):
    file = open( fileName, 'r' )
    matches = []

    for line in file:
        if line.find( keepLinesWith ) > -1:
            matches.append( line )
    return matches  
于 2012-08-27T10:07:05.893 回答
0

您真的必须逐行解析每个文件吗?你不能做类似的事情:

for b in a:
    for fname in b:
        with open(fname, "r") as f:
            content = f.read()
        if EACH in content:
            print "There's a {0} in {1}".format(EACH, fname)

(这with open(...) as ...是为了确保您的文件在您阅读后关闭......)

于 2012-08-27T11:10:15.003 回答