Quickly scan a directory and yield matching entries, based on patterns and/or entry type.
This project is not maintained anymore !
- Python 3.4+ (Python 3.6+ is preferred)
- scandir (for Python 3.4)
The module is tested on Python 3.4 to 3.7 (included).
From PyPI
- Open a terminal
- Type
pip3 install fsscan
orpip3 install --user fsscan
on Linux
From GitHub
- Download the archive from GitHub
- Unzip the archive
- Open a terminal
- Move to the directory containing
setup.py
- Type
pip3 install .
orpip3 install --user .
on Linux
$ python3 -m fsscan
or
$ fsscan
usage: fsscan [-h] [-d directory] [-i] [-r] [-t {f,d,b,FILE,DIR,BOTH}] [-f]
[patterns [patterns ...]]
Quickly scan a directory and yield matching entries.
positional arguments:
patterns Patterns to look for in entries names
optional arguments:
-h, --help show this help message and exit
-d directory Directory to scan
-i Ignore case
-r Recursive scan
-t {f,d,b,FILE,DIR,BOTH}
Type of entry to return
-f Follow symlinks of directories
Using this directory tree sample
<temp_dir>
|-- dir1/
| |-- logs/
| | |-- file11.log
| |-- file11.py
|-- dir2/
| |-- logs/
| | |-- file21.log
| | |-- file22.log
| |-- file21.py
| |-- file22.py
|-- file1.py
Example 1 - without parameters
for entry in fsscan.run(temp_dir):
print(entry)
Output*:
<temp_dir>/dir1
<temp_dir>/dir2
<temp_dir>/file1.py
Example 2 - with parameters
parameters = {
"patterns": "*LOG*",
"ignore_case": True,
"wanted_type": fsscan.DIR_TYPE,
"recursive": True,
}
for entry in fsscan.run(<temp_dir>, **parameters):
print(entry)
Output*:
<temp_dir>/dir1/logs
<temp_dir>/dir2/logs
* : The outputs may differ for you OS
run(directory='.',
patterns=None, ignore_case=True, wanted_type=BOTH_TYPES,
recursive=False, on_error=None, follow_links=False, callback=None):
Parameters
----------
directory : (str or Path)
Directory to scan
patterns : (str or sequence of str)
Patterns to look for in entries names
ignore_case : bool
Ignore case
wanted_type : int
Type of entry to return (file, directory or both)
recursive : bool
Recursive scan
on_error : (None or callable)
Callable to use when an error occured in scandir
follow_links : bool
Follow symlinks of directories
callback : (None or callable)
Callable to use after the scan (e.g. entries cast)
Returns
-------
Generator
Entries paths as string or callback result
For callbacks, see fsscan/callbacks.py
.
I would say a big thank you to the people listed below :
- Guido van Rossum (@gvanrossum) and other Python contributors for their great work on Python.
- Ben Hoyt (@benhoyt) and other contributors for their great work on scandir
- People from the #python-fr channel on IRC for their advices and feedbacks
- My friends (ABR & AM) for their advices and feedbacks