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

2024-06-02 04:43:14 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python函数解析包含字符串列表的文件。 基本上是一个文件夹结构解析成一个txt文件,所以我不必在实际的raid工作,而在生产。这也是一个要求。从包含路径列表的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'
    ]

这是我已经完成的清理列表版本的部分列表,工作正常。你知道吗

真正的问题是,需要将一个文件夹中的所有帧解析到一个列表中,这样才能保存一个正确的列表序列。 可能有1帧或1000帧,也有多个序列在同一个文件夹中,如列表中所示。你知道吗

我的目标是在一个文件夹中为每个序列创建一个列表,这样我就可以把它们向前推,以便将来做更多的工作。你知道吗

代码:

groups = [list(group) for key, group in itertools.groupby(sorted(lpaths), len)]

pp.pprint(groups)

Tags: 文件文件夹列表序列renderprojectsexrdbu
1条回答
网友
1楼 · 发布于 2024-06-02 04:43:14

因为您似乎有不同的命名约定,所以需要编写一个函数,该函数接受单个字符串,可能使用正则表达式,返回一个明确的键供您排序,假设您的名字是由shot number来识别的,shot number可以由r".*[Ss]hot_?(\d+).*\.ext"来识别。您可以为匹配基10返回一个整数,因此丢弃任何前导0

因为您也可能有一个版本号,所以可以执行类似的操作来获得一个明确的版本号(并且可能只处理给定快照的最新版本)。你知道吗

相关问题 更多 >