Skip to main content

Class with file-like interface to a file found in provided search path

Project description

https://img.shields.io/pypi/v/disambigufile.svg https://img.shields.io/travis/datagazing/disambigufile.svg Documentation Status

Class with file-like interface to a file found in provided search path

Features

  • 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)

Examples

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}")

License

  • Free software: MIT license

Documentation

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

disambigufile-0.3.2.tar.gz (12.0 kB view hashes)

Uploaded Source

Built Distribution

disambigufile-0.3.2-py3-none-any.whl (5.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page