Walk directories trees with os.scandir, generating DirEntry objects
Project description
scanwalk
scanwalk.walk()
walks a directory tree, generating DirEntry
objects.
It's an alternative to os.walk()
modelled on os.scandir()
.
>>> import scanwalk
>>> for entry in scanwalk.walk('data/demo'):
... print(entry.path, entry.name, entry.is_dir(), entry.is_file())
...
data/demo demo True False
data/demo/adir adir True False
data/demo/adir/anotherfile anotherfile False True
data/demo/adir/anotherdir anotherdir True False
data/demo/afile afile False True
a rough equivalent with os.walk()
would be
>>> import os
>>> for parent, dirs, files in os.walk('data/demo'):
... print(parent, name, True, False)
... for name in dirs:
... print(os.path.join(parent, name), name, True, False)
... for name in files:
... print(os.path.join(parent, name), name, False, True)
...
data/demo demo True False
data/demo/adir adir True False
data/demo/afile afile False True
data/demo/adir/anotherdir anotherdir True False
data/demo/adir/anotherfile anotherfile False True
Notable features and differences between scanwalk.walk()
and os.walk()
scanwalk
generates a flat stream ofDirEntry
objects. Nested loops aren't needed.scanwalk
doesn't sort entries. Directories and files are intermingled (within a given parent directory).scanwalk
descends directories as it encounters them. It's neither depth first or breadth first.os.walk()
supports both.scanwalk
doesn't build intermediate listsscanwalk
doesn't need anonerror()
callback.scanwalk
can be 10-20% faster.
Installation
python -m pip install scanwalk
Requirements
- Python 3.6+
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
scanwalk-0.0.1.tar.gz
(3.2 kB
view details)
Built Distribution
File details
Details for the file scanwalk-0.0.1.tar.gz
.
File metadata
- Download URL: scanwalk-0.0.1.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0770ed6f0b6dcdacf8894b84de89d2089ecfba7143174961be9584b13153572c |
|
MD5 | 9c3f0c5a806128078dcc9183c18657a9 |
|
BLAKE2b-256 | e1f03859026fc7d12d2e2c01918a41e3cabb8fa56a5e54a2be6b125b7572acd2 |
File details
Details for the file scanwalk-0.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: scanwalk-0.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 3.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b70903ccf149353ad697d6fbe93899f77180fef07cb10c377019926f1b29f838 |
|
MD5 | 5337fb4fd5a604cd66ca61078ca331da |
|
BLAKE2b-256 | 79cbc614369b4c6cef365a1be98bd47c1d2fadddaaccdadf21f14b92d61cb8d3 |