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
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
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
go get github.com/justinfx/gofileseq/v3Also 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/v3/cmd/seqls
seql some/images
# some/images/file_foo.1-100@@@.tifThe file sequence parser is built using an ANTLR4 grammar defined in grammar/fileseq.g4.
When the grammar file is modified, the parser must be regenerated and committed:
# Regenerate parser from grammar
go generate ./...
# Or directly via make
cd grammar && make generate-goRequirements: Java runtime (for ANTLR code generation)
If Java is not in a default system location, specify the path:
# Using go generate
JAVA=/path/to/java go generate ./...
# Using make directly
cd grammar && make JAVA=/path/to/java generate-goAlternative: Use Docker (no Java required):
cd grammar && make generate-go-dockerA C++ pure port of gofileseq is also available in the cpp dir
