Python Pattern Matching Examples: Working with Paths and Files
Manipulating file and path strings is dreary work. It is a common activity, particularly in data science where the file structure may contain important semantic clues like a date or the source of the data. Contextualizing that information is usually done with a mixture of if
statements and liberal use of pathlib’s Path
or os.path
, but the structural pattern matching feature in Python 3.10 is there to cut down on the tedium.
Consider a directory structure that looks a bit like this:
cpi/<country>/by-month/<yyyy-mm-dd>/<filename>.<ext> cpi/<country>/by-quarter/<yyyy-qq>/<filename>.<ext>
Where cpi
means Consumer Price Index; country
is the ISO-3166 code for a country; yyyy-mm-dd
is the ISO date for the particular month; yyyy-qq
is the year and quarter; and filename
is an arbitrary filename and ext
is an extension.
Ordinarily, you’d just split the path and write some quick logic that picks out what you need, and that’ll work fine for simple things, but if you have to deal with dozens of variadic fields in the file path, that approach will not scale. So let’s look at a way that will scale using the match
and case
keywords.
Read More ->
from Planet Python
via read more
No comments:
Post a Comment