Ben Chuanlong Du's Blog

It is never too late to learn.

Path Pattern Matching in Python

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Tips and Traps

  1. Pathspec is preferred over zgitignore as the latter is not actively maintained.

pathspec

pathspec is a utility library for gitignore style pattern matching of file paths.

zgitignore

zgitignore checks if a file is ignored by a .zgitignore file (which is compatible with a .gitignore file).

fnmatch

This module provides support for Unix shell-style wildcards, which are not the same as regular expressions (which are documented in the re module).

pathlib.Path.glob or glob

The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell, although results are returned in arbitrary order. No tilde expansion is done, but *, ?, and character ranges expressed with [] will be correctly matched. This is done by using the os.scandir() and fnmatch.fnmatch() functions in concert, and not by actually invoking a subshell. Note that unlike fnmatch.fnmatch(), glob treats filenames beginning with a dot (.) as special cases. (For tilde and shell variable expansion, use os.path.expanduser() and os.path.expandvars().)

In [ ]:

Comments