繁体   English   中英

我希望能够从列表python分组相同的文件序列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM