私は単純なコードを機能させようとしていますが、残念ながら私は Python の初心者です。
私のスクリプトは、パターンに一致しないファイルのリストを返す必要があります。詳細については、こちらをご覧ください: python grep reverse matching
私のコードは実行されていますが、見つかったファイルの完全なリストを処理しません:
import sys,os
filefilter = ['.xml','java','.jsp','lass']
path= "/home/patate/code/project"
s = "helloworld"
for path, subdirs, files in os.walk(path):
for name in files:
if name[-4:] in filefilter :
f = str(os.path.join(path, name))
with open(f) as fp:
if s in fp.read():
print "%s has the string" % f
else:
print "%s doesn't have the string" % f
このコードは次を返します。
/home/patate/code/project/blabla/blabla/build.xml に文字列がありません
なし
変更するf = str(os.path.join(path, name)) for print str(os.path.join(path, name))
と、リスト全体が印刷されているのがわかります。
希望どおりにリスト全体を処理するにはどうすればよいですか?