[英]I want to be able to group same file sequence from a list python
使用python函数解析包含字符串列表的文件。 基本上是将步行文件夹结构解析为txt文件,因此我在制作产品时不必进行真正的突袭检查。 这也是一个要求。 从包含路径列表的txt文件中工作。
lpaths =[
'/projects/0100/dbu/shots/11_1/SC11_1_Shot012/render/SC11_1_Shot012.v01_1025.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot012/render/SC11_1_Shot012.v01_1042.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot012/render/SC11_1_Shot012.v01_1016.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot012/2d/app/Shot012_v1.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot012/2d/app/Shot012_v02.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot004/3d/app2/workspace.cfg',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot004/3d/app2/scenes/SC11_1_Shot004_v01.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot004/3d/app2/scenes/Shot004_camera_v01.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot004/render/SC11_1_Shot004.v01_1112.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot004/render/SC11_1_Shot004.v01_1034.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot004/render/SC11_1_Shot004.v02_1116.exr',
'/projects/0100/dbu/shots/11_1/SC11_1_Shot004/render/SC11_1_Shot004.v02_1126.exr'
]
这是已经制定并且可以正常使用的清除列表版本ive的部分列表。
真正的问题是,需要将文件夹中的所有帧解析为一个列表,以便它可以容纳适当的列出序列。 如列表中所示,同一文件夹中可能有1帧或1000,也有多个序列。
我的目标是在文件夹中为每个序列提供一个列表,这样我就可以推动它们前进以做更多的工作。
码:
groups = [list(group) for key, group in itertools.groupby(sorted(lpaths), len)]
pp.pprint(groups)
由于您似乎有不同的命名约定,因此您需要编写一个函数,该函数采用单个字符串,并且可能使用正则表达式 ,返回一个明确的键供您排序,可以说您的名字由镜头编号严格标识,可以用r".*[Ss]hot_?(\\d+).*\\.ext"
标识,您可以为匹配基数10返回一个整数,因此丢弃任何前导0。
由于您可能还具有版本号,因此可以执行类似的操作来获得明确的版本号(并且可能仅处理给定快照的最新版本)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.