pythonhidden-files

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


Solution

  • 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 '.'.