Python обрабатывает файлы с полным списком - PullRequest
1 голос
/ 26 мая 2010

Я пытаюсь заставить работать простой код, к сожалению, я новичок в Python.

Мой скрипт должен возвращать список файлов, которые не соответствуют шаблону, дополнительную информацию здесь: Python grep обратное соответствие

Мой код работает, но не обрабатывает полный список найденных файлов, как следует:

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)) Я вижу, как распечатывается весь список.

Как мне обработать весь список, как я хочу?

1 Ответ

0 голосов
/ 26 мая 2010

Попробуйте использовать os.path.splitext, чтобы проверить соответствие расширения файла

for path, subdirs, files in os.walk(path):
    for name in files:
        if os.path.splitext(name)[1] 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

Остальное выглядит хорошо.

...