A library for parsing/building frame ranges and sequences. A port of the python fileseq library, for Go and C++(https://github.com/justinfx/fileseq)


Keywords
cpp, fileseq, filesystem, go, golang, ranges, vfx
License
MIT
Install
go get github.com/justinfx/gofileseq

Documentation

Fileseq

Go project version GoDoc Build Go Report

A Go language library for parsing file sequence strings commonly used in VFX and animation applications.

Ported from the original fileseq Python library: https://github.com/justinfx/fileseq

For C++, see C++ Support

Frame Range Shorthand

Support for:

  • Standard: 1-10
  • Comma Delimted: 1-10,10-20
  • Chunked: 1-100x5
  • Filled: 1-100y5
  • Staggered: 1-100:3 (1-100x3, 1-100x2, 1-100)
  • Negative frame numbers: -10-100
  • Padding: #=4 padded, @=single pad
  • Printf Syntax Padding: %04d=4 padded, %01d=1 padded
  • Houdini Syntax Padding: $F4=4 padding, $F=1 padded
  • Udim Syntax Padding: or %(UDIM)d, always 4 padded

Sequence Formats

Sequences of files are expected to follow a pattern similar to:

  • /path/to/some/file_foo.0100.exr
  • /path/to/some/file_foo.1-100#.jpg
  • /path/to/some/file_foo.1-100@@@.tif
  • /path/to/some/file_foo.1-100%03d.tif
  • /path/to/some/file_foo.1-100$F3.tif
  • /path/to/some/file_foo.1-100.tif
  • /path/to/some/file_foo.1-100%(UDIM)d.tif

Install

go get github.com/justinfx/gofileseq/v2

Also included is a seqls tool, which uses gofileseq to produce an executable, used for listing sequences on the filesystem:

And seqinfo tool, which can print plain-text or json parsed information about one or more sequence strings.

Download the latest binary release

Or install from source:

go get github.com/justinfx/gofileseq/v2/cmd/seqls
seql some/images
# some/images/file_foo.1-100@@@.tif

C++ Support

A C++ pure port of gofileseq is also available in the cpp dir