fs.glob¶
Useful functions for working with glob patterns.
- class fs.glob.BoundGlobber(fs: FS)[source]¶
A
Globber
object bound to a filesystem.An instance of this object is available on every Filesystem object as the
glob
property.- __call__(pattern: str, path: str = '/', namespaces: Optional[List[str]] = None, case_sensitive: bool = True, exclude_dirs: Optional[List[str]] = None) → Globber[source]¶
Match resources on the bound filesystem againsts a glob pattern.
- Parameters
pattern (str) – A glob pattern, e.g.
"**/*.py"
namespaces (list) – A list of additional info namespaces.
case_sensitive (bool) – If
True
, the path matching will be case sensitive i.e."FOO.py"
and"foo.py"
will be different, otherwise path matching will be case insensitive.exclude_dirs (list) – A list of patterns to exclude when searching, e.g.
["*.git"]
.
- Returns
An object that may be queried for the glob matches.
- Return type
- class fs.glob.Counts(files, directories, data)¶
- data¶
Alias for field number 2
- directories¶
Alias for field number 1
- files¶
Alias for field number 0
- class fs.glob.Globber(fs: FS, pattern: str, path: str = '/', namespaces: Optional[List[str]] = None, case_sensitive: bool = True, exclude_dirs: Optional[List[str]] = None)[source]¶
A generator of glob results.
- __init__(fs: FS, pattern: str, path: str = '/', namespaces: Optional[List[str]] = None, case_sensitive: bool = True, exclude_dirs: Optional[List[str]] = None) → None[source]¶
Create a new Globber instance.
- Parameters
fs (FS) – A filesystem object
pattern (str) – A glob pattern, e.g.
"**/*.py"
path (str) – A path to a directory in the filesystem.
namespaces (list) – A list of additional info namespaces.
case_sensitive (bool) – If
True
, the path matching will be case sensitive i.e."FOO.py"
and"foo.py"
will be different, otherwise path matching will be case insensitive.exclude_dirs (list) – A list of patterns to exclude when searching, e.g.
["*.git"]
.
- __iter__() → Iterator[GlobMatch][source]¶
Get an iterator of
fs.glob.GlobMatch
objects.
- count() → fs.glob.Counts[source]¶
Count files / directories / data in matched paths.
Example
>>> my_fs.glob('**/*.py').count() Counts(files=2, directories=0, data=55)
- Returns
A named tuple containing results.
- Return type
- count_lines() → fs.glob.LineCounts[source]¶
Count the lines in the matched files.
- Returns
A named tuple containing line counts.
- Return type
Example
>>> my_fs.glob('**/*.py').count_lines() LineCounts(lines=4, non_blank=3)
- class fs.glob.LineCounts(lines, non_blank)¶
- lines¶
Alias for field number 0
- non_blank¶
Alias for field number 1
- fs.glob.imatch(pattern: str, path: str) → bool[source]¶
Compare a glob pattern with a path (case insensitive).
- Parameters
pattern (str) – A glob pattern.
path (str) – A path.
- Returns
True
if the path matches the pattern.- Return type
bool
- fs.glob.match(pattern: str, path: str) → bool[source]¶
Compare a glob pattern with a path (case sensitive).
- Parameters
pattern (str) – A glob pattern.
path (str) – A path.
- Returns
True
if the path matches the pattern.- Return type
bool
Example
>>> from fs.glob import match >>> match("**/*.py", "/fs/glob.py") True