一个python库,用于基于katana中的类似库解析帧范围和文件序列。
Fileseq的Python项目详细描述
文件eq
一个python库,用于基于katana中的类似库解析帧范围和文件序列。
帧范围速记
支持:
- 标准:1-10
- 逗号分隔:1-10,10-20
- 分块:1-100x5
- 填:1-100Y5
- 交错:1-100:3(1-100x3,1-100x2,1-100)
- 负片帧数:-10-100
- 填充:=4个填充,@=单个填充
- printf语法填充:04d=4填充,%01d=1填充
框架集
框架集在列表容器中包装一系列框架。
迭代框架集
fs=fileseq.FrameSet("1-5")forfinfs:printf
访问帧
使用索引:
>>>fs=fileseq.FrameSet("1-100:8")>>>fs[0]# First frame.1>>>fs[-1]# Last frame.98
使用方便的方法:
>>>fs=fileseq.FrameSet("1-100:8")>>>fs.start()# First frame.1>>>fs.end()# Last frame.98
文件序列
从字符串实例化
fileseq.FileSequence("/foo/bar.1-10#.exr")
vfx软件的格式路径
使用filesequence.format方法:
>>>seq=fileseq.FileSequence("/foo/bar.1-10#.exr")>>>seq.format(template='{dirname}{basename}{padding}{extension}')"/foo/bar.#.exr"
连接:
>>>seq=fileseq.FileSequence("/foo/bar.1-10#.exr")>>>''.join([seq.dirname(),seq.basename(),'%0{}d'.format(len(str(seq.end()))),seq.extension()])"/foo/bar.%02d.exr"
获取文件路径列表
>>>seq=fileseq.FileSequence("/foo/bar.1-10#.exr")>>>[seq[idx]foridx,frinenumerate(seq.frameSet())]['/foo/bar.0001.exr','/foo/bar.0002.exr','/foo/bar.0003.exr','/foo/bar.0004.exr','/foo/bar.0005.exr','/foo/bar.0006.exr','/foo/bar.0007.exr','/foo/bar.0008.exr','/foo/bar.0009.exr','/foo/bar.0010.exr']
在磁盘上查找序列
< H3>检查所有现有序列的目录< EH3>seqs=fileseq.findSequencesOnDisk("/show/shot/renders/bty_foo/v1")>检查一个现有序列的目录。
- 在通配符中使用“@”或“”可能需要使用“*”。
- 对于这个方法,不管您使用了多少填充字符实例,它仍然会找到您的序列。
是:
fileseq.findSequenceOnDisk('/foo/bar.@.exr')
是:
fileseq.findSequenceOnDisk('/foo/bar.@@@@@.exr')
否:
fileseq.findSequenceOnDisk('/foo/bar.*.exr')
版本更改>;=1.0.0
从版本1.0.0开始,框架集允许所有正常的设置操作。它现在是不变的 哈希对象本身也是。这意味着顺序和内容是不可变的。 内部值(分别是元组和frozenset),并且框架集本身可以是 用作字典中的键。
这也意味着空框架集(框架集('')是一个有效的对象,您应该 期望从任何将导致空返回值的集合操作接收回。这个 请注意,空框架集上的frameset.start和frameset.end方法将引发 索引器错误(如果调用)。
为了避免混淆,在1.0.1中添加了frameset.is_null属性,您可以检查 在调用这些方法之前。