Test for an empty directory that could be very large if it is not empty?

Tim Chase python.list at tim.thechases.com
Wed Aug 6 18:44:41 EDT 2014


On 2014-08-07 08:26, Ben Finney wrote:
> Virgil Stokes <vs at it.uu.se> writes:
> > Suppose I have a directory C:/Test that is either empty or
> > contains more than 2000000 files, all with the same extension
> > (e.g. *.txt). How can I determine if the directory is empty
> > WITHOUT the generation of a list of the file names in it (e.g.
> > using os.listdir('C:/Test')) when it is not empty?
> 
> Certainly ‘os.listdir(foo)’ is the simplest way to determine the
> entries in a directory, and thereby to test whether it is empty.
> That simplicity is very valuable, and you should have a compelling,
> *measured* reason to do something more complicated. What is it?

With all the changes in 2->3 where many listy things were made into
iteratory things (e.g. range()), I was surprised that os.listdir()
didn't do likewise since I believe that just about every OS uses some
iterator-like call behind the scenes anyways.

The difference in timings when serving a web-request are noticeable
(in my use-case, I had to change my algorithm and storage structure
to simplify/avoid heavily-populated directories)

-tkc





More information about the Python-list mailing list