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

时间:2018-01-05 08:43:00

标签: python list path sequence

使用python函数解析包含字符串列表的文件。 基本上一个行走的文件夹结构解析为txt文件,因此我不需要在prod中处理真正的raid。这也是一项要求。从包含路径列表的txt文件开始工作。

String fontSheet = fileToStylesheetString( new File ("location") );

if ( fontSheet == null ) {
    //Do Whatever you want with logging/errors/etc.
} else {
    scene.getStylesheets().add( fontSheet );
}

public String fileToStylesheetString ( File stylesheetFile ) {
    try {
        return stylesheetFile.toURI().toURL().toString();
    } catch ( MalformedURLException e ) {
        return null;
    }
}

这是已经解决的清理列表版本的部分列表,并且工作正常。

真正的问题是,需要将文件夹中的所有帧解析为列表,以便它可以保存正确列出的序列。 可能有1帧或1000,同样在列表中看到的同一文件夹中有多个序列。

我的目标是为文件夹中的每个序列设置一个列表,这样我就可以提前完成更多的工作。

代码:

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 个答案:

答案 0 :(得分:0)

由于您似乎有不同的命名约定,您需要编写一个带有单个字符串的函数,并且可能使用正则表达式,返回一个明确的键供您排序,让我们说你名称由射击号严格标识,可以通过r".*[Ss]hot_?(\d+).*\.ext"识别你可以为匹配基数10返回一个整数,从而丢弃任何前导0。

由于您也可能有版本号,您可以执行类似的操作以获得明确的版本号,(并且可能只处理给定镜头的最新版本)。