[Python-Dev] PEP 471 -- os.scandir() function -- a better and faster directory iterator

Ethan Furman ethan at stoneleaf.us
Tue Jul 1 00:38:45 CEST 2014

On 06/30/2014 03:07 PM, Tim Delaney wrote:
> On 1 July 2014 03:05, Ben Hoyt wrote:
>> So, here's my alternative proposal: add an "ensure_lstat" flag to
>> scandir() itself, and don't have *any* methods on DirEntry, only
>> attributes.
>> ...
>> Most importantly, *regardless of platform*, the cached stat result (if
>> not None) would reflect the state of the entry at the time the
>> directory was scanned, rather than at some arbitrary later point in
>> time when lstat() was first called on the DirEntry object.
> I'm torn between whether I'd prefer the stat fields to be populated
> on Windows if ensure_lstat=False or not. There are good arguments each
>  way, but overall I'm inclining towards having it consistent with POSIX
> - don't populate them unless ensure_lstat=True.
> +0 for stat fields to be None on all platforms unless ensure_lstat=True.

If a Windows user just needs the free info, why should s/he have to pay the price of a full stat call?  I see no reason 
to hold the Windows side back and not take advantage of what it has available.  There are plenty of posix calls that 
Windows is not able to use, after all.


More information about the Python-Dev mailing list