dublintech
dublintech

Reputation: 17785

ignoring directories in os.walk()?

I wish to ignore some directories in my os.walk().

I do:

folders_to_ignore = ['C:\\Users\\me\\AppData\\'];
def find_files(directory, pattern):
for root, dirs, files in os.walk(directory):
    dir[:] = [d for d in dirs if not is_folder_to_ignore(d)];
    for basename in files:
        if fnmatch.fnmatch(basename, pattern):
            filename = os.path.join(root, basename)
            print("filename=" + filename);

I get:

  File "C:\Users\me\workspaces\pythonWS\FileUtils\findfiles.py", line 29, in find_files
  dir[:] = [d for d in dirs if not is_folder_to_ignore(d)];

TypeError: 'builtin_function_or_method' object does not support item assignment

Any ideas?

Thanks.

Upvotes: 5

Views: 2611

Answers (1)

Unknown
Unknown

Reputation: 5772

You're using dir which is a built-in, probably you mean dirs

change this

dir[:] = [d for d in dirs if not is_folder_to_ignore(d)]

to this

dirs[:] = [d for d in dirs if not is_folder_to_ignore(d)]

Upvotes: 15

Related Questions