[issue11406] There is no os.listdir() equivalent returning generator instead of list

Martin v. Löwis report at bugs.python.org
Sun Mar 13 01:43:14 CET 2011


Martin v. Löwis <martin at v.loewis.de> added the comment:

> The downsides of os.listdir: a) You can't get a peek at the files so
> far, it's all or nothing. I only wanted to know if a directory is
> empty and I have to read the whole thing just to throw it away (maybe
> I missed another library function?)

This depends somewhat on the operating system. On Unix, doing os.stat
on the directory, then looking on st_nlink, will tell you whether
the directory is empty (st_nlink is 2 on an empty directory).

> b) Using it in a GUI basically requires you to use threads if you may
> run into a dir with many files. Especially on a slow filesystem
> (network). Because you won't regain control until the whole thing is
> read.

Hmm. In a GUI, you would typically want to sort the file names by
some criterion, which typically requires you to read all files
(even if you then only display some of them).

> I would like to have an iterator version as well, but I also dislike
> another function (especially the "x" prefix). How about adding a
> keyword argument to select iterator behaviour?

I still would like to see a demonstrable improvement in a real-world
application.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue11406>
_______________________________________


More information about the Python-bugs-list mailing list