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

Glenn Linderman v+python at g.nevcal.com
Tue Jul 1 04:04:43 CEST 2014


On 6/30/2014 4:25 PM, Devin Jeanpierre wrote:
> On Mon, Jun 30, 2014 at 3:07 PM, Tim Delaney
> <timothy.c.delaney at gmail.com> wrote:
>> On 1 July 2014 03:05, Ben Hoyt <benhoyt at gmail.com> 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.
> This won't work well if lstat info is only needed for some entries. Is
> that a common use-case? It was mentioned earlier in the thread.

If it is, use ensure_lstat=False, and use the proposed (by me) 
.refresh() API to update the data for those that need it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20140630/ef104e21/attachment.html>


More information about the Python-Dev mailing list