Directory scanner
Project description
fsscan
Quickly scan a directory and yield matching entries, based on patterns and/or entry type.
Requirements
- 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).
Installation
From pypi.org
- Open a terminal
- Type
pip install fsscan
orpip 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
pip install .
Usage
From command line
$ python -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
From script
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
Documentation
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
.
Thanks
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
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
fsscan-0.0.3.tar.gz
(5.0 kB
view hashes)
Built Distribution
fsscan-0.0.3-py3-none-any.whl
(6.2 kB
view hashes)