Class with file-like interface to a file found in provided search path
- Search a path for a file that matches a pattern
- Search a path for a file inside directories that match a pattern
- Basic file-like interfaces:
- DisFile(...).open()
- with DisFile(...) as f: ...
- Get path from config file (if optini module installed)
Simple usage:
from disambigufile import DisFile
path = '/bin:/usr/bin:/usr/local/bin'
try:
print(DisFile('^ls', path=path))
except Exception as e:
print(f"unable to disambiguate file; exception: {e}")
Using a with statement to open the disambiguated file:
from disambigufile import DisFile
path = 'path1:path2'
try:
with DisFile(r'^asdf', path=path) as f:
print(f.read())
except Exception as e:
print(f"unable to disambiguate file; exception: {e}")
With more specific exception handling:
from disambigufile import DisFile
import disambigufile
path = '/bin:/usr/bin:/usr/local/bin'
try:
print(DisFile('^ls', path=path))
except disambigufile.Error as e:
# will only catch module-specific exceptions
print(f"unable to disambiguate file; exception: {e}")
Match a file inside of a matched directory:
from disambigufile import DisFile
# search for unique file matching ~/Datasets/*2019-08-19*/data*
path='~/Datasets'
try:
hit = DisFile(
pattern='2019-08-19',
path=path,
subpattern='^data',
)
print(hit)
except disambigufile.Error as e:
print(f"unable to disambiguate file; exception: {e}")
- Free software: MIT license
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.