In python3, when operating on unknown (user-input) file paths, I need to support wildcards such as ./r*/*.dat
. The plan was to use something like this (simplified):
paths = []
for test in userinputs:
paths.extend(pathlib.Path().glob(test))
This works great for relative paths; however, when the user provides an absolute path (which they should be allowed to do), the code fails:
NotImplementedError: Non-relative patterns are unsupported
If it's a "simple" glob, like /usr/bin/*
, I can do something like:
test = pathlib.Path("/usr/bin/*")
sources.extend(test.parent.glob(test.name))
However, like my first path example, I need to account for wildcards in any of the parts of the path, such as /usr/b*/*
.
Is there an elegant solution for this? I feel like I'm missing something obvious.