我正在努力从多个目录中收集图像序列列表。我在Nuke(合成包)中使用TCL表达式来生成列出每个目录内容的sting。返回的字符串如下所示:
Draft {Test_02_v002_Global_alp_%04d.png 1-12} {Test_02_v002_Global_col_%04d.png 1-12} Thumbs.db
Draft和Thumbs.db是字符串中不需要的部分(目录中的非图像文件)。我想得到的是:
Test_02_v002_Global_alp_%04d.png 1-12
Test_02_v002_Global_col_%04d.png 1-12
如果使用以下代码在目录中只有一个图像序列,我可以这样做:
start = "{"
end = "}"
re.search('%s(.*)%s' % (start, end), string).group(1)
但是,当存在多个图像序列时,我无法弄清楚如何使其工作。
答案 0 :(得分:2)
您可以使用re.findall
:
>>> from re import findall
>>> mystr = "Draft {Test_02_v002_Global_alp_%04d.png 1-12} {Test_02_v002_Global_col_%04d.png 1-12} Thumbs.db"
>>> findall("{(.*?)}", mystr)
['Test_02_v002_Global_alp_%04d.png 1-12', 'Test_02_v002_Global_col_%04d.png 1-12']
>>>