Ben Hoyt <benhoyt at gmail.com> writes: > I think if I were doing this from scratch I'd reimplement listdir() in > Python as "return [e.name for e in scandir(path)]". ... > So my basic plan is to have an internal helper function in > posixmodule.c that either yields DirEntry objects or strings. And then > listdir() would simply be defined something like "return > list(_scandir(path, yield_strings=True))" in C or in Python. > > My reasoning is that then there'll be much less (if any) code > duplication between scandir() and listdir(). > > Does this sound like a reasonable approach? Note: listdir() accepts an integer path (an open file descriptor that refers to a directory) that is passed to fdopendir() on POSIX [4] i.e., *you can't use scandir() to replace listdir() in this case* (as I've already mentioned in [1]). See the corresponding tests from [2]. [1] https://mail.python.org/pipermail/python-dev/2014-July/135296.html [2] https://mail.python.org/pipermail/python-dev/2014-June/135265.html >From os.listdir() docs [3]: > This function can also support specifying a file descriptor; the file > descriptor must refer to a directory. [3] https://docs.python.org/3.4/library/os.html#os.listdir [4] http://hg.python.org/cpython/file/3.4/Modules/posixmodule.c#l3736 -- Akira
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4