Skip to main content

Find files using a simple syntax.

Project description

FileFinder

Find files using a simple syntax.

PyPI GitHub release codecov test status Documentation Status

FileFinder allows to specify the structure of filenames using a simple syntax. Parts of the file structure varying from file to file are indicated within named groups, either with format strings or regular expressions (with some pre-defined values for some names). Once setup, it can:

  • Find corresponding files in a directory (and sub-directories)
  • Parse values from the filenames
  • Select only filenames with specific values
  • Generate filenames

Quick examples

The following example will find all files with the structure Data/param_[parameter]/Temperature_[date].nc:

finder = Finder('/.../Data', 'param_%(parameter:fmt=.1f)/%(Y)/Temperature_%(Y)%(m)%(d).nc')
files = finder.get_files()

We can also select only some files, for instance only in january:

    finder.fix_group('m', 1)
    files = finder.get_files()

We can retrieve values from found files:

    filename, matches = finder.files[0]
    parameter = matches["parameter"]
    # the date as a datetime object
    date = filefinder.library.get_date(matches)

And we can generate a filename with a set of parameters:

    finder.make_filename(parameter=0.5, Y=2000, m=1, d=1)
    # Specifying the month is optional since we already fixed it to 1.

Requirements

Python >= 3.10

Installation

From pip:

pip install filefinder

From source:

pip install -e https://github.com/Descanonge/filefinder.git#egg=filefinder

Documentation

Documentation is available at filefinder.readthedocs.io.

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

filefinder-1.0.1.tar.gz (20.6 kB view hashes)

Uploaded Source

Built Distribution

filefinder-1.0.1-py3-none-any.whl (20.7 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