如何解决GIMP script-fu,“file-glob”可以只返回具有特定扩展名的文件吗?
我正在尝试在 GIMP 中使用 python-fu。我希望 pdb.file_glob 以我指定的格式返回一组图像文件。我试过了:
myGlob = "*.png|*.PNG|*.jpg|*.JPG|*.gif|*.GIF|*.xcf|*.XCF"
globpath = os.path.join(patternDir,myGlob)
num_files,files = pdb.file_glob(globpath,0)
但是 files 数组总是空的,我假设是因为 glob 语法无效。
请注意,如果我使用 myGlob="*"
,我会得到我想要的图形文件,但也会得到诸如“fake.txt”之类的文件,我想排除这些文件。
解决方法
所有 PDB 函数的文档都可以通过 Python-fu 控制台找到。点击 Browse...
按钮,然后在左窗格顶部的过滤器栏中输入您的搜索。这个文档是动态的,它包括任何可调用的插件/脚本的文档(当然只要作者写了一些)
Python 的 PDB 函数是 script-fu API 的直接映射。在这种特定情况下,file_glob()
最近被添加到 script-fu API 中,因为基本 TinyScheme 语言中没有任何内容可以做到这一点。在 Python 中,最好使用标准 Python API,os.walk()
或 glob.glob()/glob.iglob()
。
在任何情况下,这些函数都只做简单的模式匹配,如果你想要几个扩展,你需要这样的东西:
sorted([filename for ext in ['XCF','xcf','jpg','JPG','jpeg','gif','GIF'] for filename in glob.glob('*.'+ext)])
编辑:这是一个“理解”,或多或少是一个带有外部指令的循环。你可以把它读成:
files=[]
for ext in ['XCF','GIF']:
for filename in glob.glob('*.'+ext):
list.append(filename)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。