Armin Rigo <ar...@tunes.org> writes: > On 10 August 2014 08:11, Larry Hastings <la...@hastings.org> wrote: >>> A small tip from my bzr days - cd into the directory before scanning it >> >> I doubt that's permissible for a library function like os.scandir(). > > Indeed, chdir() is notably not compatible with multithreading. There > would be a non-portable but clean way to do that: the functions > openat() and fstatat(). They only exist on relatively modern Linuxes, > though.
There is os.fwalk() that could be both safer and faster than os.walk(). It yields rootdir fd that can be used by functions that support dir_fd parameter, see os.supports_dir_fd set. They use *at() functions under the hood. os.fwalk() could be implemented in terms of os.scandir() if the latter would support fd parameter like os.listdir() does (be in os.supports_fd set (note: it is different from os.supports_dir_fd)). Victor Stinner suggested [1] to allow scandir(fd) but I don't see it being mentioned in the pep 471 [2]: it neither supports nor rejects the idea. [1] https://mail.python.org/pipermail/python-dev/2014-July/135283.html [2] http://legacy.python.org/dev/peps/pep-0471/ -- Akira _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com