talnicolas talnicolas - 2 months ago 31
Python Question

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

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 an existing function that ignore hidden files when executing an
os.listdir()
and if not what would be the best way?

Thank you.

Answer

You can write one yourself:

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

Or you can use a glob:

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

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