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は多くのファイルを含むディレクトリです。それらのファイルをリストに保存していますb。の名前のファイルを抽出したいEACH

たとえば、コンテンツに「アップル」という文字列として含まれているファイルを開きたいとします。このアップルワードは引数を介して渡されます。

問題は、その値を読み取り、条件で同じ文字列を使用する方法がわからないこと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

本当に各ファイルを1行ずつ解析する必要がありますか?あなたはただのようなことをすることができませんでした:

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 に答える