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?
listdir() method in python is used to get the list of all files and directories in the specified directory. If we don't specify any directory, then list of files and directories in the current working directory will be returned. Syntax: os.listdir(path)
Description. Python method listdir() returns a list containing the names of the entries in the directory given by path. The list is in arbitrary order. It does not include the special entries '.
Overview. The os. listdir() method in Python gets the files and directories present in a given path.
os. listdir() method gets the list of all files and directories in a specified directory. By default, it is the current directory.
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 is an old question, but seems like it is missing the obvious answer of using list comprehension, so I'm adding it here for completeness:
[f for f in os.listdir(path) if not f.startswith('.')]
As a side note, the docs state listdir
will return results in 'arbitrary order' but a common use case is to have them sorted alphabetically. If you want the directory contents alphabetically sorted without regards to capitalization, you can use:
sorted((f for f in os.listdir() if not f.startswith(".")), key=str.lower)
(Edited to use key=str.lower
instead of a lambda
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With