Fix Python – How to ignore hidden files using os.listdir()?

Question

Asked By – talnicolas

My python script executes an os.listdir(path) where the path is a queue containing archives that I need to treat one by one.

The problem is that I’m getting the list in an array and then I just do a simple array.pop(0). It was working fine until I put the project in subversion. Now I get the .svn folder in my array and of course it makes my application crash.

So here is my question: is there a function that ignores hidden files when executing an os.listdir() and if not what would be the best way?

Now we will see solution for issue: How to ignore hidden files using os.listdir()?


Answer

You can write one yourself:

import os

def listdir_nohidden(path):
    for f in os.listdir(path):
        if not f.startswith('.'):
            yield f

Or you can use a glob:

import glob
import os

def listdir_nohidden(path):
    return glob.glob(os.path.join(path, '*'))

Either of these will ignore all filenames beginning with '.'.

This question is answered By – Adam Rosenfield

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0